Предотвращение безопасных/небезопасных ошибок с использованием относительных 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-адреса, относящиеся к протоколу.