谷歌即时搜索如何改变浏览器发送的来源标识?

7
如果您在Google Instant中点击结果,您的浏览器发送给目标网站的引荐者包含许多参数,其中包括非常重要的q=[自动完成查询]。
但是,您是从一个URL为http://www.google.com/的页面进入的,后面跟着一堆东西,即作为页面锚点。
因此,浏览器似乎会发送一个URL作为引荐者,该URL与您单击时正在查看的页面的URL不同。
似乎没有其他重定向,那么他们到底是如何做到的呢?
3个回答

5

大多数情况下,谷歌搜索结果实际上会将您发送到谷歌重定向页面,而不是直接进入目标页面。他们使用JavaScript在您单击链接时切换链接的目标。

您可以通过点击并按住搜索结果链接,然后观察状态栏来看到这种效果。

这不只是针对Google Instant,在他们的标准结果页面上已经实行了相当长的时间。


它在我的Firefox浏览器中无法工作;我只得到www.google.com作为引荐者,这是当前URL的哈希/锚点部分之外的部分。 显然,使用JavaScript设置引荐者失败了。Chromium可以正常工作 - 所以可能是Firefox扩展或类似的东西阻止了它。 - blueyed

-1

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

Google 用于使 Google Instant 工作的 JavaScript 只是在向服务器发送请求之前以编程方式更改锚点。


是的,但那不是我的问题!它如何从HTTP referrer中包含的锚点获取与我点击的结果有关的内容? - Butters

-2

1
是的,但 q= 部分在锚点中(#后面),而不是 URL 的主要部分。锚点通常不会作为 HTTP 引用发送。 - Butters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接