Предотвращение безопасных / небезопасных ошибок с помощью относительных URL-адресов протокола для источника изображения

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

Например, ссылка на изображение, например:

<img src="//domain.com/img.jpg" />

вместо:

<img src="http://domain.com/img.jpg" />
or
<img src="https//domain.com/img.jpg" />

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

РЕДАКТИРОВАТЬ Я видел, как это выдает ошибки при использовании функции getimagesize PHP.

2 ответа

Решение

Нашел интересное замечание по использованию относительных URL протокола:

Вы должны быть осторожны, чтобы использовать этот синтаксис только на страницах, предназначенных для браузеров. Если вы поместите его в электронное письмо, URL базовой страницы не будет использоваться для разрешения относительного URL. По крайней мере, в Outlook этот URL будет интерпретироваться как сетевой файл Windows, а не как вы предполагали.

отсюда

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

больше информации здесь:

Относительный URL без схемы (http: или https:) действителен для RTF 3986: Раздел 4.2. Если клиент его подавляет, то это вина клиента, поскольку он не соответствует синтаксису URI, указанному в RFC.

Ваш пример действителен и должен работать. Я сам использовал этот метод относительных URL на сайтах с интенсивным трафиком и у меня не было жалоб. Также мы тестируем наши сайты в Firefox, Safari, IE6, IE7 и Opera. Все эти браузеры понимают этот формат URL

IE 7 и IE 8 будут загружать таблицы стилей дважды, если вы используете относительный к протоколу URL. Это не повлияет на вас, если вы используете его "только для источника изображения", но на всякий случай.

При использовании URL-адресов, относящихся к протоколу, следует учитывать следующее:

1) Все современные браузеры поддерживают эту функцию.

2) Мы должны быть уверены, что запрашиваемый ресурс доступен как по HTTP, так и по HTTPS. Если HTTP перенаправляет на HTTPS, это нормально, но здесь время загрузки займет немного больше времени, чем если бы запрос был сделан непосредственно к HTTPS.

3) Internet Explorer 6 не поддерживает эту функцию.

4) Internet Explorer 7 и 8 поддерживают эту функцию, но они будут загружать таблицу стилей дважды, если для файлов CSS используются URL-адреса, относящиеся к протоколу.

Другие вопросы по тегам