Подтвердить что ты не робот

Что означает точка в URL-адресе?

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

Его относительный URL-адрес выглядел следующим образом:

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

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

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

4b9b3361

Ответ 1

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

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

Существует Удалить алгоритмы Dot Segments, который описывает, как эти точечные сегменты должны интерпретироваться в определенном контексте базового пути.

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

Ответ 2

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

Изменить: еще одна вещь - . - текущий каталог, а .. - родительский каталог. Как комментарии phihag, их действительно следует избегать и защищать в коде. Обход каталога можно использовать для зла.