Как Google Instant меняет реферера, отправленного браузером?

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

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

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

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

3 ответа

Решение

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

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

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

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

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

Какой 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= часть

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