Что означает точка в пути URL? - PullRequest
36 голосов
/ 15 мая 2011

В вопросе, касающемся проблемы jQuery Ajax , запрашивающий пытался использовать . в начале относительного URL.Я посоветовал ему удалить его, но понятия не имею, что на самом деле делает точка.

Его относительный URL выглядел так:

./delete-misc/test-ajax-code.php

Я пытался посмотреть в RFC, но безуспешноЯ знаю, что делает точка в командной строке (Linux или Win), она представляет текущий каталог.

Я хотел бы знать: как это работает в Интернете в URL?Есть ли у него лучшие практики?Подробные объяснения приветствуются.

Ответы [ 2 ]

37 голосов
/ 15 мая 2011

сегмент пути . обычно используется в начале относительных ссылок на пути и удаляется во время разрешения ссылки , то есть в процессе разрешения относительной ссылки URI дляабсолютный URI:

Сегменты пути "." и "..", также известные как точечные сегменты, определены для относительной ссылки в иерархии имени пути.Они предназначены для использования в начале ссылки относительного пути ( Раздел 4.2 ) для указания относительного положения в иерархическом дереве имен.Это похоже на их роль в структурах файловых каталогов некоторых операционных систем для указания текущего каталога и родительского каталога соответственно.Однако, в отличие от файловой системы, эти точечные сегменты интерпретируются только в иерархии путей URI и удаляются как часть процесса разрешения ( Раздел 5.2 ).

Тамis Удалить сегменты точек алгоритмы , которые описывают, как эти сегменты точек должны интерпретироваться в определенном контексте базового пути.

В вашем случае ./delete-misc/test-ajax-code.php и delete-misc/test-ajax-code.php эквивалентныНо есть случаи, когда относительный путь может быть неверно истолкован как абсолютный URI, например, имеющий : в первом сегменте пути, например search:foo, который отличается от ./search:foo, так как первый является абсолютным URI, а последний -относительный путь URI.

6 голосов
/ 15 мая 2011

A ./ перед URL-адресом эквивалентно текущему пути.Так что ./delete-misc/test-ajax-code.php и delete-misc/text-ajax-code.php являются относительными путями.В ответе, который вы разместили, вы попросили удалить только точку, поэтому путь /delete-misc/test-ajax-code.php будет переводиться как абсолютный путь, а не относительный путь.текущий каталог и .. является родительским каталогом.Как замечает phihag, их действительно следует избегать и защищать в коде.Обратный путь в каталогах может быть использован для зла.

...