Что такое HTTP Referer, если ссылка нажата в <iframe>?
Предположим, что у меня есть веб-страница, расположенная в http://www.website.com с <iframe>
в ней. Вот так:
<html>
<head>...</head>
<body>
...
<iframe src="http://www.washington.edu">
...
</body>
</html>
Теперь предположим, что кто-то отправится на сайт www.website.com и щелкнет ссылку в самом iframe (эта ссылка находится на веб-сайте www.washington.edu).
Мой вопрос в том, что такое HTTP-Referer в этом случае?
Это http://www.website.com (страница, на которой размещается iframe), или она http://www.washington.edu ( страница, на которую была нажата ссылка)?
Ответы
Ответ 1
Это зависит от браузера.
Firefox и Safari сообщают рефереру как http://www.website.com, в то время как в некоторых версиях Internet Explorer будет отображаться http://www.washington.edu как реферер.
UPDATE 2015-04: тестирование последних версий вышеупомянутых, все они вернут http://www.washington.edu
Ответ 2
Текущие браузеры
По состоянию на август 2015 года все основные браузеры (Safari, Chrome, Firefox) должны установить заголовок Referer
HTTP http://www.washington.edu в этот случай.
Но я рекомендую вам проверить, как конкретные версии браузеров ведут себя в определенных случаях, если ваше приложение сильно зависит от значения Referer
.
Я пишу это, потому что, например, я обнаружил, что Safari 8 в настоящее время обрабатывает запросы с неправильным Referer
для JavaScript, загружаемого в iframe, возможно, если этот JavaScript ранее запрашивался с другим Referer
. Это ошибка, которая похожа на этот конкретный, который был закрыт в Chromium только в 2014 году. (Я уже сообщил об этом Apple, кстати).
Старые браузеры
Исторически Internet Explorer 6 показал другое поведение, чем описано выше - он установил заголовок Referer
HTTP http://www.website.com.