谷歌如何处理www.google.com/ncr?

时间:2012-08-14 03:12:52

标签: redirect header http-headers

我试图找出这个,并让http://www.google.com/ncr使用302(或301)重定向(不确定它是否真的如此)。

我还得到了,服务器端重定向(301和302)将不会更改原始引用,即如果我直接访问http://www.google.com/ncr,则请求转到google.com,但标题中没有任何内容可以表明我来自http://www.google.com/ncr

所以我想知道google是如何做到这一点的。

1 个答案:

答案 0 :(得分:0)

人们经常使用servlet执行此操作。 servlet将检测某种模式并向重组URL发出重定向。重定向指向浏览器。这就像浏览器已激活/点击新链接一样。

就像您在网址栏上输入了google.com/abc,然后在地址栏上输入了google.com。由于隐私问题,浏览器不会让服务器知道它访问过的以前的URL。

当然,如果您在同一个会话中,访问同一个网站,谷歌将同时有服务器端和客户端cookie跟踪您刚刚来自另一个谷歌网址。如果是网络服务提供商,我肯定会利用了解您的浏览历史记录。

因此,由于您的浏览历史www.whatever。 com会重定向到不同用户或会话的不同页面。

<强>附录

“由于隐私问题,浏览器不会让服务器知道它访问过的以前的网址。”不太正确。

更完整的规范是

  

如果使用安全协议传输引用页面,则客户端不应在(非安全)HTTP请求中包含Referer头字段。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html

Google强迫我们使用https的另一个原因让我们受益。

重定向非安全http

的流程

假设我们有

  • 网址A有一个链接转到B,其中包含指向网址B的链接。
  • 网址B是指向网址C的重定向

URL C的服务器将referer视为URL A,而不是URL B.也就是说,浏览器会将referer设置为URL A.

使用Cookie重定向

我相信你应该可以在30x重定向上包含一个setcookie标题。我没有尝试过,所以我不知道哪个浏览器会忽略或尊重它。

<强>顺便说一句

我非常怀疑我的答案对你的问题是否满意。我个人觉得它不完整,我希望有人能提出更好的答案,你应该选择那个作为答案。事实上,我认为你应该选择这个作为答案,以便你的问题回到未回答的问题池中。遗憾。