Я слишком ленив, чтобы пытаться интерпретировать все приведенные сценарии, но для проверки можно легко создать PHP-скрипт, возвращающий изображение, которое сообщает нам, что такое реферер:
<?php
header("Content-type: image/png");
header("Cache-control: no-cache");
header("Pragma: no-cache");
header("Expires: -1");
$s = "Referrer: " . $_SERVER['HTTP_REFERER'];
$im = @imagecreate(500, 13)
or die("Cannot Initialize new GD image stream");
$black = imagecolorallocate($im, 0, 0, 0);
imagecolortransparent($im, $black);
$red = imagecolorallocate($im, 255, 0, 0);
imagestring($im, 3, 0, 0, $s, $red);
imagepng($im);
imagedestroy($im);
?>
Если веб-сайт отвечает HTTP-перенаправлением, например 302 Moved Temporarily
, ваш браузер все равно отправит исходный реферер с перенаправленным запросом:
<?php
header("Location: http://[..]/referrer-to-img/referrer.php?redirected");
?>
Обратите внимание, что, например, в Safari на Mac щелчок с нажатой клавишей Command (чтобы открыть ссылку в новой вкладке) и щелчок с нажатой клавишей Command-Option (в новом окне) do устанавливает реферер для этой ссылки, при выборе «Открыть ссылку в новой вкладке/окне» из контекстного меню (после щелчка правой кнопкой мыши) нет.
Удачного тестирования. ;-)
person
Arjan
schedule
09.10.2009