如果您点击 Google Instant 中的某个结果,您的浏览器向目标网站发送的referer 包含一堆参数,包括所有重要的 q=[autocompleted query]
但是您来自一个 URL 只是http://www.google.com/的页面,在 # 字符之后有一堆东西,即作为页面锚点。
因此,浏览器似乎正在发送一个 URL 作为引用者,该 URL 与您单击时查看的页面的 URL 不同。
似乎没有额外的重定向,那么他们到底是怎么做到的呢?
如果您点击 Google Instant 中的某个结果,您的浏览器向目标网站发送的referer 包含一堆参数,包括所有重要的 q=[autocompleted query]
但是您来自一个 URL 只是http://www.google.com/的页面,在 # 字符之后有一堆东西,即作为页面锚点。
因此,浏览器似乎正在发送一个 URL 作为引用者,该 URL 与您单击时查看的页面的 URL 不同。
似乎没有额外的重定向,那么他们到底是怎么做到的呢?
大多数情况下,Google 搜索结果实际上会将您发送到 Google 重定向页面,而不是直接发送到目标页面。当您单击它时,他们使用 JavaScript 来切换链接 onmousedown 的目标。
您可以通过单击并按住搜索结果链接并查看状态栏来查看此效果。
这并不是 Google Instant 特有的,他们在标准结果页面上已经这样做了很长时间。
URL 的页面锚点部分可以在客户端进行操作,而无需向服务器发出新请求。即使在谈论静态锚链接(例如<a href="#foo">Section Foo</a>
)时,单击它们也不会导致向服务器发送新请求;它在浏览器中完全处理。
Google 用来使 Google Instant 工作的 javascript 只是在向服务器发出请求之前以编程方式更改锚点。
你用的是什么谷歌?
我搜索后的网址是这样的:
它确实包括q=
部分