浏览器里输入一个URL后发生了什么?

1、浏览器查找域名的IP地址

把域名解析成对应的IP,NDS过程如下:

A:查找浏览器缓存。因为浏览器一般会缓存DNS一段时间,找不到则进行下一步。

B:查找系统缓存。查找本地的hosts文件,找到直接返回,找不到进行下一步。

C:查找路由器缓存。路由器一般都有自己的DNS缓存,将前面的请求发送给路由器,查找ISP服务商缓存的DNS的服务器,找到直接返回,找不到进行下一步。

D:本地域名服务器以DNS客户的身份向其他根域名服务器继续发送查询请求报文,而不是让该主机自己进行下一步查询。本地域名服务器地址通过DHCP协议得到。

E:迭代查找。本地域名服务器采用迭代查询,它先向一个根域名服务器查询,然后根域名服务器告诉本地域名服务器,下一次查询的顶级域名服务器的IP地址。本地域名服务器向顶级域名服务器进行查询,顶级域名服务器告诉本地域名服务器下一次应该查找的权限域名服务器的IP地址,然后本地域名服务器向权限域名服务器进行查询,权限域名服务器告诉本地域名服务器所查询的网址的IP地址。

本地域名域名服务器把最后结果告诉主机。

2、浏览器与目标服务器建立TCP连接(三次握手

A:第一次握手。客户主动去连接服务器,并且发送SYN(假设***为J)服务器被动打开(passive open)

B:第二次握手。服务器在收到SYN后,他会发送一个SYN(K)以及一个ACK(J+1)应答给客户。

C:第三次握手。客户在收到新的SYN(K),ACK(J+1),也回应ACK(K+1)来表示收到了。

此时C-S建立连接。

3、浏览器给Web服务器发送一个HTTP-GET方法的请求。包括访问的URL、KeepAlive、长连接、用户浏览器的操作系统信息,编码等。

       某些服务器会做永久重定向响应。对于大型网站存在对各主机站点,负载均衡或者导入流量,提高SEO排名,往往不会直接返回请求页面,而是重定向。服务器往往会返回3开头的重定向码,浏览器在获取了重定向响应后,在响应报文中Location项中找到重定向地址,浏览器重新第一步访问即可。

重定向的作用:重定向是为了负载均衡或者导入流量,提高SEO(搜索引擎优化)排名。利用一个前端服务器接受请求,然后负载到不同的主机上,可以大大提高站点业务并发处理能力,重定向也可将多个域名的访问集中到一个站点(www.baidu.com和baidu.com会被搜索引擎认为是两个网址,永久重定向会将两个地址关联起来,搜索引擎会认为是同一个网站,从而提高排名)

      浏览器跟踪重定向地址

4、服务器处理请求并返回响应

   (1)服务器发出一个HTML响应

   (2)释放TCP连接(四次挥手

      A:第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器的数据传送。

      B:第二次挥手。服务器收到这个FIN,它发、返回一个ACK,确认序号为收到的序号加1,和SYN一样,一个FIN将占用一个序号。

      C:第三次挥手。服务器关闭与客户端的连接,发送一个FIN给客户端

      D:第四次挥手。客户端发回ACK报文确认,并将确认序号设置为收到序号+1。

5、浏览器解析渲染显示页面。

       

在浏览器与服务器进行信息交互的过程中,也使用了IP协议(网络层),OSPF协议(IP数据包在不同的路由器中传输时,使用该协议),ARP协议(路由器与服务器通信时,需要将IP地址转化成MAC地址),

 

原文链接:https://blog.csdn.net/Damn_Yang/article/details/90727758

图片来源:https://www.jianshu.com/p/d3725391af59 关于三次握手、四次挥手写的比较通俗易懂