2009-08-28 1 views
2

Когда я ищу что-то вроде «rearrange table columns in asp.net» в Google и нажимаю ссылку на Wrox's forum site, сайт приветствует меня сообщением, таким как «Ваш поиск в Google для« переупорядочивания столбцов таблицы в asp.net »привел вас на форум Wrox ... ".Как веб-сайт знает запрос Google, который я использовал для его поиска?

Как сайт знает, какой запрос я ввел в Google? И как я могу добавить такую ​​абсорбцию на свой сайт?

ответ

12

Он анализирует ваш запрос из параметров запроса в переменной сервера HTTP_REFERER, которая содержит URL-адрес, с которого вы отправляетесь, и предоставляется в вашем HTTP-запросе.

+1

+1 для правильного написания. 3 R, а не 4! –

8

Он использует заголовок, известный как «HTTP-реферер». См. http://en.wikipedia.org/wiki/HTTP_referrer

Чтобы использовать его на своем сайте, вам понадобится динамическое создание страниц, например ASP/ASP.NET, PHP или Perl. Например, в Perl, вы могли бы сделать что-то вроде:

if ($ENV{HTTP_REFERER} =~ /google.com\?.+&q=(.+?)&/) 
    print "Your google search of $1 brought you to this site"; 

ПРЕДУПРЕЖДЕНИЕ: Код выше только в качестве примера и не может быть правильным или надежно!

2

Как и эти ребята, это переменная заголовка HTTP_REFERER. Запрос находится в ключе «q» в URL-адресе. Поэтому, если вы хотите разобрать это, вы можете просто отсортировать строку запроса и URL-адрес, декодировать переменную «q».