Являются ли ненужные косые черты в URL плохими? - PullRequest
6 голосов
/ 11 января 2011

Я заметил, что https://stackoverflow.com//////////questions/4659504/ является действительным URL. Однако https://www.google.com//////////analytics/settings нет. Существуют ли различия, присущие технологиям веб-серверов, которые объясняют это? Должен ли URL с ненужными слешами быть правильно интерпретирован или он должен выдавать ошибку?

Ответы [ 4 ]

4 голосов
/ 11 января 2011

Прежде всего, добавление косой черты изменяет семантику пути URL, как и любой другой символ. Таким образом, по определению /foo/bar и /foo//bar не эквивалентны так же, как /foo/bar и /foo/bar/ не эквивалентны.

Но так как путь URL в основном используется для непосредственного сопоставления с файловой системой, веб-серверы часто удаляют пустые сегменты пути (это делает Apache), так что /foo//bar и /foo/bar обрабатываются эквивалентно , Но это не ожидаемое поведение; это скорее сделано для исправления ошибок.

2 голосов
/ 11 января 2011

Оба они являются действительными URL.
Однако сервер Google не может обработать второй.

Нет особой причины для обработки или отклонения URL с дублирующими косыми чертами;вам следует больше времени уделять более важным вещам.

1 голос
/ 11 января 2011

Что вы считаете «правильно истолкованным»?HTTP только действительно указывает, как интерпретируется содержимое перед косой чертой после имени сервера.Остальное полностью зависит от веб-сервера.Он анализирует то, что вы даете после этого (любым способом), и предоставляет вам любой HTML-код, который он чувствует для этого текста.

0 голосов
/ 11 января 2011

Существует разница в том, как каждое приложение обрабатывает запросы.Если вы настроили свое приложение для замены последовательных слешей перед маршрутизацией запроса, у вас не должно возникнуть никаких проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...