Какова семантика двойной косой черты, следующей за схемой в URI?

Согласно http://tools.ietf.org/html/rfc3986 и http://en.wikipedia.org/wiki/Uniform_resource_identifier, URI может содержать или не содержать двойной слеш после идентификатора схемы. Это делает "urn:issn:1535-3613" действительным URI так же, как и "http://stackru.com".

Есть ли строгая / формальная необходимость включить двойную косую черту или это необязательно, и в любом случае, какова причина / семантика? При ответе, пожалуйста, предоставьте окончательный ответ - не просто сообщайте, как ваш браузер / библиотека /... обрабатывает это.

3 ответа

Решение

Это в RFC вы связали: если есть //, это означает, что то, что следует, это власть. Смотрите Раздел 3. Так что, если схема использует полномочия, она будет использовать // после двоеточия (либо требуя его, если полномочия требуются в этой схеме, либо наличие его необязательно, если полномочия необязательны в этой схеме). mailto не использует авторитет в смысле URI, поэтому mailto URI не включают //,

Помимо RFC, который подробно объясняет ответ, я подумал, что вам может понравиться эта цитата прямо от самого изобретателя World Wide Web.

Когда [сэра Тима Бернерса-Ли] спросили, что бы он сделал по-другому, ответ был прост. "Я бы избавился от косой черты после двоеточия. Тебе это не нужно. В то время это казалось хорошей идеей".

Источник: http://www.wired.co.uk/news/archive/2014-02/06/tim-berners-lee-reclaim-the-web

Что ж, если вам нужен "окончательный ответ", я думаю, что нет ничего более убедительного, чем официальный документ HTTP RFC (см. Пункт 3.2.2, в котором говорится о схеме HTTP URL).

Другие вопросы по тегам