Предотвращение безопасных/небезопасных ошибок с использованием относительных URL-адресов протокола для источника изображения
Кто-нибудь знает, является ли проблематичным использование относительных URL-адресов протокола для источника изображения для предотвращения предупреждений о безопасности смешанного содержимого.
Например, связать изображение следующим образом:
<img src="//domain.com/img.jpg" />
вместо:
<img src="http://domain.com/img.jpg" />
or
<img src="https//domain.com/img.jpg" />
В моем тестировании я не видел ничего, чтобы предположить, что это неправильно, но я не уверен, что у него есть крайние случаи, когда это создаст проблемы.
РЕДАКТИРОВАТЬ, я видел, как он запускал ошибки при использовании PHP getimagesize.
Ответы
Ответ 1
Нашел интересный способ использования относительных URL-адресов протокола:
Вы должны быть осторожны, чтобы использовать этот синтаксис на страницах, предназначенных для браузеры. Если вы поместите его по электронной почте, не будет URL-адрес базовой страницы для использования в разрешении относительного URL. В По крайней мере Outlook, этот URL-адрес будет интерпретируется как сетевой файл Windows, не то, что вы намеревались.
из здесь
По сути, хотя нет веских причин, почему это не должно работать, пока запрос выполняется браузером, а не внешним почтовым клиентом.
Дополнительная информация от здесь:
Относительный URL без схемы (http: или https:), в соответствии с RTF 3986: Раздел 4.2. Если клиент задыхается, то это ошибка клиента, потому что они не соответствуют URI указанный в RFC.
Ваш пример действителен и должен работать. Я использовал этот относительный метод URL я на сильно пострадавших сайтах и имели нулевые жалобы. Кроме того, мы тестировать наши сайты в Firefox, Safari, IE6, IE7 и Opera. Эти браузеры все понять, что формат URL
Ответ 2
IE 7 и IE 8 будут загружать таблицы стилей дважды, если вы используете URL-адрес, относящийся к протоколу. Это не повлияет на вас, если вы используете его только "для источника изображения", но на всякий случай.
Ответ 3
При использовании URL-адресов, относящихся к протоколу, следует учитывать следующее:
1) Все современные браузеры поддерживают эту функцию.
2) Мы должны быть уверены, что запрашиваемый ресурс доступен как по HTTP, так и по HTTPS. Если HTTP перенаправляет на HTTPS, это нормально, но здесь время загрузки займет немного больше времени, чем если бы запрос был сделан непосредственно к HTTPS.
3) Internet Explorer 6 не поддерживает эту функцию.
4) Internet Explorer 7 и 8 поддерживают эту функцию, но они будут загружать таблицу стилей дважды, если для файлов CSS используются URL-адреса, относящиеся к протоколу.