URL без "http|https"
Я только что узнал от коллеги, что пропуская часть "http | https"URL-адреса в ссылке, этот URL-адрес будет использовать любую схему, на которой он использует страницу.
Например, если к моей странице обращаются по адресу http://www.example.com/ и у меня есть ссылка (обратите внимание на "//" спереди):
<a href="//www.google.com">Google</a>
Эта ссылка будет идти на http://www.google.com/.
Но если я зайду на страницу https://www.example.com/ той же ссылке, она перейдет на https://www.google.com/
Я хотел поискать в Интернете дополнительную информацию об этом, но у меня проблемы с поиском хорошей поисковой фразы. Если я ищу "URL-адреса без HTTP", то возвращаются страницы с URL-адресами в следующей форме: "www.example.com", а это не то, что я ищу.
Вы бы назвали это URL без схемы? URL без протокола?
Это работает во всех браузерах? Я протестировал его в FF и IE 8, и он работал в обоих. Это часть стандарта или я должен протестировать больше браузеров?
2 ответа
Протокол относительного URL.
Вы можете получить необычные предупреждения безопасности в некоторых браузерах.
См. Также URL-адреса, относящиеся к протоколу Википедии, для краткого определения.
Одно время это было рекомендовано; но, идя вперед, этого следует избегать. См. Также вопрос Stackru: зачем вообще использовать относящиеся к протоколу URL?
Это называется ссылкой на сетевой путь (недостающая часть называется scheme
или же protocol
) определено в RFC3986 Раздел 4.2
4.2 Относительная ссылка
Относительная ссылка использует преимущества иерархического синтаксиса (раздел 1.2.3) для выражения ссылки URI относительно пространства имен другого иерархического URI.
relative-ref = relative-part [ "?" query ] [ "#" fragment ] relative-part = "//" authority path-abempty / path-absolute / path-noscheme / path-empty
URI, на который ссылается относительная ссылка, также известная как целевой URI, получается путем применения алгоритма эталонного разрешения из Раздела 5.
Относительная ссылка, которая начинается с двух символов косой черты, называется ссылкой на сетевой путь (выделено мной); такие ссылки используются редко. Относительная ссылка, которая начинается с одного символа косой черты, называется ссылкой на абсолютный путь. Относительная ссылка, которая не начинается с символа косой черты, называется ссылкой на относительный путь.
Сегмент пути, который содержит символ двоеточия (например, "this:that"), нельзя использовать в качестве первого сегмента ссылки на относительный путь, так как он будет ошибочно принят за имя схемы. Такой сегмент должен предшествовать точечный сегмент (например, "./this:that"), чтобы сделать ссылку на относительный путь.