Какова семантика двойной косой черты, следующей за схемой в 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).