Является ли схема необязательной в URI? - PullRequest
1 голос
/ 15 июля 2010

Недавно меня попросили добавить немного Woopra JavaScript на веб-сайт, и я заметил, что URL-адрес начинается с двойной косой черты (т. Е. Отсутствует схема).Я никогда не видел этого раньше, поэтому я попытался узнать об этом больше, но единственное, что я действительно смог найти, это пункт в FAQ Woopra :

Woopra JavaScript в программе установки не включает http в URL-вызов скрипта.Это правильно.JavaScript был оптимизирован для быстрой и эффективной работы на вашем сайте.

Однако некоторые службы и инструменты для проверки и отладки сайтов не распознают код как правильный.Это правильно и правильно.Если предупреждения вас раздражают, просто добавьте http в URL скрипта.Это не повлияет на сценарий.

(Для пояснения, URL-адрес: "//static.woopra.com/js/woopra.v2.js" - двоеточие опускается в дополнение к"http ".)

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

Заранее благодарен за удовлетворение моего любопытства!

Ответы [ 2 ]

4 голосов
/ 21 сентября 2011

Это действительный URL.Он называется «ссылкой на сетевой путь», как определено в RFC 3986 .Если вы не укажете схему / протокол, она вернется к текущей схеме.Так что, если вы просматриваете страницу через https: // все ссылки на сетевые пути также будут использовать https.

Например, вот снова ссылка на документ RFC 3986 , но с сетьюссылка на путьЕсли вы просматривали эту страницу через https (хотя похоже, что вы не можете использовать https со StackOverflow), ссылка будет отражать вашу текущую схему URI, в отличие от первой ссылки.

1 голос
/ 15 июля 2010

См. RFC 3986 , раздел 3:

Общий синтаксис URI состоит из иерархическая последовательность компонентов упоминается как схема, власть, путь, запрос и фрагмент.

  URI         = scheme ":" hier-part [ "?" query ] [ "#" fragment

]

  hier-part   = "//" authority path-abempty
              / path-absolute
              / path-rootless
              / path-empty

Компоненты схемы и пути требуется, хотя путь может быть
пусто (без символов).

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