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

时间:2017-03-28 14:11:38

标签: google-chrome http google-search http-status-code-302

我将查询java输入https://www.google.com的搜索文本框。一个结果是https://en.wikipedia.org/wiki/Java_(programming_language)。通过右键单击链接并选择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

然后将以上链接粘贴到Chrome地址栏。我使用Developer Tools来监控HTTP网络流量。

enter image description here

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

1 个答案:

答案 0 :(得分:1)

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

  • 如果启用了javascript,则会使用脚本将窗口位置导航到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>