程序员人生 网站导航

浏览器访问网页过程中发生了什么?

栏目:互联网时间:2014-12-18 08:32:23

在阅读器输入:http://www.baidu.com/,最后,阅读器显现出相应网页,这个进程究竟产生了甚么?


第1步,解析域名,找到主机IP
(1)阅读器会缓存DNS1段时间,1般2⑶0分钟不等。如果有缓存,直接返回IP,否则下1步。
(2)缓存中没法找到IP,阅读器会进行1个系统调用,查询hosts文件。如果找到,直接返回IP,否则下1步。(在计算机本地目录etc下有1个hosts文件,hosts文件中保存有域名与IP的对应解析,通常也能够修改hosts科学上网或破解软件。)
(3)进行了(1)(2)本地查询无果,只能借助于网络。路由器1般都会有自己的DNS缓存,ISP服务商DNS缓存,这时候1般都能够得到相应的IP。如果还是无果,只能借助于DNS递归解析了。
(4)这时候,ISP的DNS服务器就会开始从根域名服务器开始递归搜索,从.com顶级域名服务器,到baidu的域名服务器

到这里,阅读器就取得了IP。在DNS解析进程中,常常会解析出不同的IP。比如,电信的是1个IP,网通的是另外一个IP。这是采取了智能DNS的结果,下降运营商间访问延时,在多个运营商设置主机房,就近访问主机。电信誉户返回电信主机IP,网通用户返回网通主机IP。固然,劫持DNS,也能够屏蔽掉1部份网点的访问,某防火长城也加入了这1特性。


第2部,阅读器与网站建立TCP连接

阅读器利用IP直接与网站主机通讯。阅读器发出TCP(SYN标志位为1)连接要求,主机返回TCP(SYN,ACK标志位均为1)应对报文,阅读器收到应对报文发现ACK标志位为1,表示连接要求确认。阅读器返回TCP()确认报文,主机收到确认报文,3次握手,TCP链接建立完成。


第3部份,阅读器发起GET要求

阅读器向主机发起1个HTTP-GET方法报文要求。要求中包括访问的URL,也就是http://www.baidu.com/ ,还有User-Agent用户阅读器操作系统信息,编码等。值得1提的是Accep-Encoding和Cookies项。Accept-Encoding1般采取gzip,紧缩以后传输html文件。Cookies如果是首次访问,会提示服务器建立用户缓存信息,如果不是,可以利用Cookies对应键值,找到相应缓存,缓存里面寄存着用户名,密码和1些用户设置项。


第4部份,显示页面或返回其他
返回状态码200 OK,表示服务器可以相应要求,返回报文,由于在报头中Content-type为“text/html”,阅读器以HTML情势显现,而不是下载文件。

但是,对大型网站存在多个主机站点,常常不会直接返回要求页面,而是重定向。返回的状态码就不是200 OK,而是301,302以3开头的重定向码,阅读器在获得了重定向响应后,在响应报文中Location项找到重定向地址,阅读器重新第1步访问便可。


补充1点的就是,重定向是为了负载均衡或导入流量,提高SEO排名。利用1个前端服务器接受要求,然后负载到不同的主机上,可以大大提高站点的业务并发处理能力;重定向也可将多个域名的访问,集中到1个站点;由于baidu.com,www.baidu.com会被搜索引擎认为是两个网站,照成每一个的链接数都会减少从而下降排名,永久重定向会将两个地址关联起来,搜索引擎会认为是同1个网站,从而提高排名。




------分隔线----------------------------
------分隔线----------------------------

最新技术推荐