您的位置: 网界网 > 网络通信 > 正文

输入URL按下回车后究竟发生了什么

2011年04月01日 09:38:11 | 作者:黄永兵 译 | 来源:51CTO | 查看本文手机版

摘要:作为一名软件开发或是网络技术人员,你应该对Web应用程序的运行原理和协议交换,以及涉及到的技术:如浏览器、HTTP、HTML、Web服务器和请求处理程序等都有所了解才行。在这篇文章中,我们将深入探讨你访问某个URL时发生的一系列...

标签
协议交换
网络技术
Web应用程序

4、Facebook服务器以一个永久重定向响应

图 5

图 5

下面是Facebook服务器向浏览器请求发回的响应:

HTTP/1.1 301 Moved PermanentlyCache-Control: private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0Expires: Sat, 01 Jan 2000 00:00:00 GMTLocation: http://www.facebook.com/P3P: CP="DSP LAW"Pragma: no-cacheSet-Cookie: made_write_conn=deleted; expires=Thu, 12-Feb-2009 05:09:50 GMT; path=/; domain=.facebook.com; httponlyContent-Type: text/html; charset=utf-8X-Cnection: closeDate: Fri, 12 Feb 2010 05:09:51 GMTContent-Length: 0

服务器以301永久移走响应告诉浏览器应转到"http://www.facebook.com/"而不是"http://facebook.com/"。

你可能会问,为什么服务器要坚持用重定向进行响应呢?为什么不用用户想看的网页进行响应呢?

一个原因是搜索引擎排名,如果相同网页有两个URL,如http://www.igoro.com/和http://igoro.com/,搜索引擎会将他俩看作是两个不同的网站,分摊到每个URL的入站连接就要少得多,从而降低了网站的排名,搜索引擎理解永久重定向(301),将会把来自这两个源的入站连接合并成一个排名。

同样,相同内容对应的URL太多也利于缓存,如果某段内容有多个名字,在缓存中可能也会出现多次。

5、浏览器跟随重定向

图 6

图 6

浏览器现在知道"http://www.facebook.com/"才是正确的URL,于是发出第二个GET请求。

GET http://www.facebook.com/ HTTP/1.1Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...]Accept-Language: en-USUser-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; [...]Accept-Encoding: gzip, deflateConnection: Keep-AliveCookie: lsd=XW[...]; c_user=21[...]; x-referer=[...]Host: www.facebook.com

消息头和第一个请求的含义一样,就不再啰嗦了。

12 345
[责任编辑:李夏艳 li_xiayan@cnw.com.cn]