Как Google Instant меняет реферера, отправленного браузером? - PullRequest
7 голосов
/ 12 сентября 2010

Если вы нажмете на результат в Google Instant, реферер, отправленный вашим браузером на сайт назначения, содержит набор параметров, в том числе все важные q = [автозаполненный запрос]

Но вы идетесо страницы, URL которой просто http://www.google.com/ с кучей вещей после символа #, то есть в качестве привязки на странице.

Таким образом, браузер, похоже, отправляет URL в качестве реферера, которыйотличается от URL страницы, которую вы просматривали при нажатии.

Похоже, дополнительного перенаправления не существует, так как же они это делают?

Ответы [ 3 ]

5 голосов
/ 12 сентября 2010

В большинстве случаев результаты поиска Google фактически отправляют вас на страницу перенаправления Google, а не прямо на целевую страницу.Они используют JavaScript, чтобы переключать цель ссылки на mousedown при нажатии на нее.

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

Это не относится к Google Instant, они делают это довольно долго на своих стандартных страницах результатов.

0 голосов
/ 12 сентября 2010

Якорной частью URL можно манипулировать на стороне клиента без нового запроса к серверу.Даже когда речь идет о статических ссылках привязки (например, <a href="#foo">Section Foo</a>), нажатие на них не приводит к отправке нового запроса на сервер;он полностью обрабатывается в браузере.

JavaScript, используемый Google для работы Google Instant, просто программно изменяет привязку перед выполнением запроса к серверу.

0 голосов
/ 12 сентября 2010

Какой Google вы используете?

Мой URL после поиска выглядит так:

http://www.google.es/#sclient=psy&hl=es&q=something+to+search&aq=f&aqi=g4g-o1&aql=&oq=&gs_rfai=&pbx=1&fp=b0....

Включает в себя q= часть

...