Абсолютные URL без протокола (схемы), чтобы сохранить адрес текущей страницы

85

Я видел //somepage.com/resourceформат URL. Например:

<img src="//remotesite.com/image1.jpg" />

Дело в том, что если текущая страница (страница, определяющая imgтег) используется http, то запрос на удаленный сайт выполняется через http. Если это https - это https. Это устраняет предупреждения браузера о не полностью зашифрованных страницах.

У меня вопрос: безопасен ли этот формат URL для всех браузеров? А это стандарт?

Божо
источник
4
Связанный: Могу ли я изменить все свои ссылки http: // только на //? отвечает на ваш первый, а относительные URL-адреса схемы отвечает на ваш второй вопрос.
Gumbo
1
Аналогичный вопрос: stackoverflow.com/questions/8343942/…
TMS
Хотя вы не использовали этот термин в своем вопросе, я добавил тег, относящийся к протоколу (так что этот вопрос можно найти проще).
unor

Ответы:

61

безопасен ли этот формат URL для всех браузеров.

Я ничего не могу сказать наверняка, но вы сможете протестировать это в разных браузерах.

А это стандарт?

Технически это называется «ссылкой на сетевой путь» в соответствии с RFC 3986 . Вот схема для этого:

  relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

  relative-part = "//" authority path-abempty
                / path-absolute
                / path-noscheme
                / path-empty

Однако существует проблема, когда при использовании на <link>или @import, IE7 и IE8 загружают файл.

Вот сообщение, написанное Полом Айришем на эту тему:

Сарфраз
источник
1
Обратите внимание, что Пол Айриш обновил свое сообщение, указав, что теперь ресурсы должны всегда обслуживаться через https, когда это возможно. См. Сообщение, на которое ссылается @Sarfraz выше.
Эван Донован
1
Код фрагмента Google Analytics использует эту схему, поэтому я уверен, что это кроссбраузерный инструмент, хотя этот инструмент используется на многих многих веб-сайтах, в противном случае они просто предоставили бы версию https,
Лукас Лисис,
22

Да, я верю, что это так. Пол Айриш ввел термин относительный URL-адрес протокола .

Я бы также отметил , что это часть проекта HTML5Boilerplate, который пропагандирует кроссбраузерность.

Примечание: в IE6 есть пограничный случай с Google Analytics, который упоминается в статье Пола. Так что это не идеально.

xzyfer
источник
Это больше не так, см. Stackoverflow.com/a/37609402/2237601 или здесь , они сейчас используют https://. Также см. Здесь, почему пропуск схемы протокола может быть не очень хорошей идеей.
bg17aw 07