Поддержка браузером URL-адресов, начинающихся с двойной косой черты


107

Недавно я видел несколько ссылок, используемых без протокола. Это не казалось слишком сложным для понимания - я думаю, что это отличная идея и довольно интуитивно понятная.

Для тех из вас, кто не знает, использование URL-адреса, например, //example.com/script.jsбудет указывать на любой http://example.com/script.jsили в https://example.com/script.jsзависимости от того, происходит ли URL-адрес от URL-адреса http или https . Например, включение сценариев http или изображений со страницы https может быть проблемой безопасности, поэтому это решает эту проблему без необходимости обнаружения протокола в вашем коде.

У меня вопрос, какая поддержка браузера / ОС для этого есть? Безопасно ли использовать на производстве? Это определенно облегчило бы жизнь.

Простой пример и тест: http://codetester.org/916c6916

РЕДАКТИРОВАТЬ: Просто продолжение того, что я использую это для рекламного сервера моей компании в производстве для многих вещей без проблем в течение нескольких лет.


9
Ответ здесь: stackoverflow.com/questions/4659345/… --- Короче говоря, это в спецификации RFC, поэтому он должен поддерживаться всеми основными браузерами.
Кейт

1
@Keith Спасибо, это хорошо и все такое, но, просматривая спецификации RFC, я на самом деле ничего не вижу в этом начале двойного слэша. Надеялся найти уже проведенное окончательное тестирование браузера. :)
dtbarne

Ответы:


88

Такое поведение было частью RFC 1808 (раздел 4), которому около 16 лет, поэтому каждый крупный браузер должен (и поддерживает) это.

К сожалению, в IE7 и -8 есть ошибка, из-за которой они загружают ресурсы дважды, если URL-адрес, зависящий от протокола, используется в linkили @import- что не должно быть большой проблемой, но некрасиво, и о нем следует помнить.


Это старый пост, но я также хотел сказать, что это совсем не хорошая практика. Недавно у меня возникли проблемы с панелью администратора одного из наших клиентов. URL-адрес //code.jquery.com/jquery-2.1.3.min.jsне найден, а библиотека не загружена. Затем я пытаюсь загрузить http://code.jquery.com/jquery-2.1.3.min.jsи вижу страницу с ошибкой. Я подозреваю, что конфигурация безопасности прокси, VPN или брандмауэра установлена ​​ими внутри. После обновления URL-адреса для использования httpsпротокола все работает нормально.
TwystO

3

Если вы разрабатываете на локальном компьютере, есть вероятность, что он потерпит неудачу с src="file://host.com/filename".

В этой ситуации вам необходимо указать схему явно: http://host.com/filenameили https://host.com/filename.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.