2012-02-06 2 views
58

Я только что узнал от коллеги, что исключение части URL «http | https» URL-адреса в ссылке приведет к тому, что этот URL использует любую схему используемой страницы.URL без «http | https»

Так, например, если моя страница доступна на 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, и он работал в обоих. Является ли эта часть стандарта, или я должен проверить больше браузеров?

+5

Возможный дубликат [Абсолютные URL-адреса, опуская протокол (схема), чтобы сохранить одну из текущей страницы] (http://stackoverflow.com/questions/4978235/absolute-urls-omitting-the-protocol -схема-в-порядке-для-сохранить-один-of-the) – David

+1

Для справки (поскольку вы спросили, какие условия для поиска), поиск Google, который привел меня к исходному вопросу StackOverflow, был: «Абсолютный URL-адрес без протокола « – David

+0

вы не указываете, есть ли у него http или https, поэтому браузер решает вас, беря последнюю страницу, предполагая, что ссылка появилась на той же странице. – raym0nd

ответ

48

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

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

См. Также Wikipedia Protocol-relative URLs для краткого определения.

В свое время, it was recommended; но в будущем, it should be avoided. Смотрите также, StackOverflow вопрос Why use protocol-relative URLs at all?

11

Это называется справочная сеть-путь (часть, которая отсутствует, называется scheme или) defined in RFC3986 Section 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»), чтобы сделать ссылку относительного пути.

+0

// не может использоваться в базовом теге в html. Я установил

Смежные вопросы