Google 如何重定向其搜索结果?

How does Google redirect its search results?

我在 https://www.google.com 上的搜索文本框中输入了查询 java。一个结果是https://en.wikipedia.org/wiki/Java_(programming_language)。我通过右键单击 link 并选择 Copy Link Address 得到以下文本。

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=10&cad=rja&uact=8&ved=0ahUKEwiijvLpqvnSAhVFqY8KHU5UDyYQFghDMAk&url=%68%74%74%70%73%3a%2f%2f%65%6e%2e%77%69%6b%69%70%65%64%69%61%2e%6f%72%67%2f%77%69%6b%69%2f%4a%61%76%61%5f%28%70%72%6f%67%72%61%6d%6d%69%6e%67%5f%6c%61%6e%67%75%61%67%65%29&usg=AFQjCNEaMDPWkK-lszS-jjSYrWuKEdrmKA&bvm=bv.150729734,d.dGc

然后我把上面的link粘贴到Chrome地址栏。我使用 Developer Tools 来监控 HTTP 网络流量。

第一个 HTTP 请求是针对原始 link 的。它的状态码是200。Chrome如何为https://en.wikipedia.org/wiki/Java_(programming_language)发出以下请求?我知道状态码为302的HTTP响应可以让brsowers跟随link在Locationheader。但是在这种情况下如何使用状态码 200 进行重定向?

重定向已完成,因为在第一个 HTTP 请求 (https://www.google.com/url?sa=t&rct=j...) 的响应中:

  • 如果启用 javascript,则 window 位置会使用脚本导航到 https://en.wikipedia.org/...
  • 如果javascript被禁用,或者客户端不支持javascript,那么<meta http-equiv="refresh">用于重定向到https://en.wikipedia.org/...

这是第一个 HTTP 请求的响应正文:

<script>window.googleJavaScriptRedirect=1</script>
<META name="referrer" content="origin">
<script>var n={navigateTo:function(b,a,d){if(b!=a&&b.google){if(b.google.r){b.google.r=0;b.location.href=d;a.location.replace("about:blank");}}else{a.location.replace(d);}}};n.navigateTo(window.parent,window,"https://en.wikipedia.org/wiki/Java_(programming_language)");
</script>
<noscript>
<META http-equiv="refresh" content="0;URL='https://en.wikipedia.org/wiki/Java_(programming_language)'">
</noscript>