Является ли URL с//в разделе пути действительным?

У меня есть вопрос относительно URL-адресов:

Я читал RFC 3986 и все еще задал вопрос об одном URL-адресе:

Если URI содержит компонент полномочий, то компонент пути
должен либо быть пустым, либо начинаться с символа косой черты ( "/" ). Если URI не содержит компонент полномочий, тогда путь не может начаться
с двумя символами косой черты ( "//" ). Кроме того, ссылка URI (Раздел 4.1) может быть ссылкой относительного пути, и в этом случае первый сегмент пути не может содержать символ двоеточия ( ":" ). ABNF
требует пяти отдельных правил, чтобы устранить эти случаи, только один из который будет соответствовать подстроке пути в заданной ссылке URI. Мы используйте общий термин "компонент пути" для описания подстроки URI
согласованный парсером с одним из этих правил.

Я знаю, что //server.com:80/path/info действителен (это относительный URL-адрес схемы)

Я также знаю, что http://server.com:80/path//info действительно.

Но я не уверен, допустимо ли следующее:

http://server.com:80//path/info

Проблема моего вопроса заключается в том, что cookie не отправляется на http://server.com:80//path/info при создании URI http://server.com:80/path/info с ограничением на /path

+23
источник поделиться
1 ответ

См. url с несколькими косыми чертами, что-то сломать?, Есть ли недостатки в использовании двойных слэшей в URLs?, Что означает двойное слэш в URL-адресах? и RFC 3986 - Унифицированный идентификатор ресурса (URI): общий синтаксис.

Консенсус: браузеры будут выполнять запрос как есть, они не изменят запрос. Символом / является разделитель путей, но поскольку сегменты пути определяются как:

path-abempty  = *( "/" segment )
segment       = *pchar

Значит, косая черта после http://example.com/ может сопровождаться другой косой чертой, до бесконечности. Серверы могут игнорировать его, но браузеры, как вы поняли, не делают.

Фраза:

Если URI не содержит компонент полномочий, то путь не может начинаться с двумя символами косой черты ( "//" ).

Разрешает URL-адреса, относящиеся к протоколу, но конкретно указывает, что в этом случае не может присутствовать орган (server.com:80 в вашем примере).

Итак: да, это действительно, нет, не используйте его.

+19
источник

Связанные вопросы


Похожие вопросы

Посмотрите другие вопросы по меткам или Задайте вопрос