Пишу, по большей части, про историю, свою жизнь и немного про программирование.

WebKit иногда не передаёт Referer

Так вот, оба браузера построены на библиотеке Webkit и оба грешат тем, что не передают HTTP_REFERER.

На самом деле передают, но не всегда, что еще больше запутывает ситуацию. Если человек просто нажмет на ссылку, то реферер будет передан серверу, если откроет новое окно или вкладку «альтернативным» нажатием (на Маке это cmd-click или нажатие средней кнопки), то тоже передастся, а вот если нажать правой кнопкой (или ctrl-click), то нет.

Причём, пятый Хром ведёт себя так же. Ненависть. Багу уже несколько лет, разработчикам он известен, но они его не исправляют.

14 комментариев
u1itka.livejournal.com 2010

Действительно не передает.

maxim-zotov.livejournal.com 2010

Баг проявляется в большем числе случаев, чем это написано на приведенной странице.

Referrer передается серверу (в http-заголовке), но не записывается в переменную JavaScript’а document.referrer в том случае, если делается http-редирект (например, переходы с поиска Яндекса ;)).

Для development-версии (5.x) ошибка исправлена (а раньше была исправлена и для development-версии 4.x), для релиза — не исправлена (то есть не работало в 3.x, сейчас не работает и в 4.x).

Тестовая страница:
http://support.li.ru/tmp/chrome-ref-fail.html
В нормальных браузерах после перехода по обеим ссылкам будет показан адрес ссылающейся страницы в двух строках. В Chrome 4 строка «JavaScript referrer» будет пустой

В пятой версии при открытии ссылки в новом окне или вкладке (именно вручную через контекстное меню правой кнопкой) во всех случаях referrer не передается. А вот если кликнуть по ссылке с нажатым shift или ctrl, то передается.

vkv.livejournal.com 2010

может это фича, а не баг?

Евгений Степанищев (bolknote.ru) 2010

Комментарий для vkv.livejournal.com:

Странная какая-то фича. Неудобная и неоправданная.

wiktar (wiktar.com) 2010

Комментарий для Евгения Степанищева:

«ctrl-click» — это нажатие правой кнопкой мыши и выбор «Open link in new tab» в меню?

mkal.livejournal.com 2010

В опере, если открывать ссылку кликом колёсика мышки, то тоже не передаётся. Может это фича?

werdn.livejournal.com 2010

Комментарий для mkal.livejournal.com:

эт только голосованием можно решить, я голосую за фичу

Азат Разетдинов (razetdinov.ya.ru) 2010

Комментарий для mkal.livejournal.com:

Действительно, в Опере Ctrl + Shift + клик передаёт Referer, а кликом колесом — нет.
Лично я только колесом и пользуюсь.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для wiktar.com:

«ctrl-click» — это нажатие правой кнопкой мыши и выбор «Open link in new tab» в меню?

Нет, это клик мышью при зажатом ctrl.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для mkal.livejournal.com:

В опере, если открывать ссылку кликом колёсика мышки, то тоже не передаётся.

Однако.

jankkhvej.blogspot.com 2010

Это фича. Причём очень правильная. С какого, собственно, хрена он должен передавать, если я явно начинаю новую навигацию?

Евгений Степанищев (bolknote.ru) 2010

Комментарий для jankkhvej.blogspot.com:

Если бы это была фича, то с другими похожими действиями реферер тоже не передавался бы.

С какого, собственно, хрена он должен передавать, если я явно начинаю новую навигацию?

На реферерах очень многое держится в интернете, в плане рекламы.

jankkhvej.blogspot.com 2010

Комментарий для Евгения Степанищева:

Если бы это была фича, то с другими похожими действиями реферер тоже не передавался бы.

Действия похожие, да не те.

На реферерах очень многое держится в интернете, в плане рекламы.

Потому я и не хочу, в основном, чтобы они передавались, начиная новую навигацию. Реклама должна умереть. Пусть ищут другие способы заработка в интернете.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для jankkhvej.blogspot.com:

Реклама должна умереть. Пусть ищут другие способы заработка в интернете.

Вы неожиданно стали какие-то очень неумные вещи говорить. Что значит «пусть»? Реклама умрёт, умрёт с ней и масса замечательных сайтов.