Как 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 после поиска выглядит так:
Это включает в себя q=
часть