URL без "http | https" - PullRequest
       3

URL без "http | https"

75 голосов
/ 06 февраля 2012

Я только что узнал от коллеги, что пропуская часть «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 ]

63 голосов
/ 01 марта 2013

Протокол относительного URL.

В некоторых браузерах могут появляться необычные предупреждения безопасности.

См. Также, URL-адреса, относящиеся к протоколу Википедии , для краткого определения.

В свое время было рекомендовано ; но в дальнейшем этого следует избегать . См. Также вопрос StackOverflow, Зачем вообще использовать URL-адреса, относящиеся к протоколу?

13 голосов
/ 05 июля 2016

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

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