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"), чтобы сделать ссылку на относительный путь.

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