2010-09-12 59 views
7

如果你点击谷歌即时的结果,您的浏览器到目标网站发送引用者,包含了一些参数,包括所有重要的Q = [自动完成查询]Google Instant如何更改浏览器发送的引荐者?

但你从一个页面来其网址只是http://www.google.com/,其中#字符后面有一堆东西,即作为页面上的锚点。

因此,浏览器似乎在发送一个URL作为引用者,它与您单击时查看的页面的URL不同。

似乎没有额外的重定向,那么他们究竟如何做到这一点?

回答

5

大多数情况下,Google搜索结果实际上会将您转到Google重定向页面,而不是直接转到目标页面。当你点击它时,他们使用JavaScript来切换链接的目标。

您可以通过点击并按住搜索结果链接并查看状态栏来查看此效果。

这不是特定于Google即搜即得,他们已经在标准结果页上进行了相当长的时间。

+0

我想这可以解释它 - 谢谢! – Butters 2010-09-12 15:44:26

+0

它不适用于我(在Firefox中);我只是将www.google.com作为引荐来源,它是当前没有散列/锚定部分的网址。 显然,set-referrer-using-Javascript失败了。 Chromium的工作正常 - 所以它可能是Firefox扩展之一或类似的阻止这一点。 – blueyed 2010-09-13 22:09:57

-1

URL的页面锚部分可以操控客户端没有新请求到服务器。即使在谈到静态链接链接时(例如<a href="#foo">Section Foo</a>),点击它们也不会导致向服务器发送新的请求;它在浏览器中完全处理。

Google正在使用JavaScript来使Google即时工作只是在向服务器发出请求之前以编程方式更改锚点。

+0

是的,但那不是我的问题!它是如何从包含在发送给我点击的结果的HTTP referer中的锚中获取东西的? – Butters 2010-09-12 14:54:33