在浏览器中输入网址之后会发生什么

1. 浏览器将域名解析为IP地址

(1)先到浏览器缓存记录中查找
(2)如果没有则到路由器缓存DNS记录中查找
(3)没有则发送请求到本地域名服务器,
     每一个本地域名服务器都维护一个高速缓存,存放最近用过的域名及IP地址
(4)如果还没有则向根域名服务器发出递归查询,并依次从根域查找顶级域,
    顶级域查找而二级域,二级域查找三级域,直到找到解析的地址。
    通过这个IP地址可以找到客户端到服务端的唯一路径。

2.浏览器发送一个HTTP请求报文

在客户端传输层向HTTP报文添加源和目的端口到首部,封装为TCP报文段,
传入网络层,服务器使用的是80端口监听客户端的请求。

3. 网络层将服务器的IP地址添加到首部

将TCP报文段封装成IP数据报。通过路由器的路由和转发功能确定数据通过
哪个路径到达服务器。

4.数据链路层

数据链路层将IP数据报添加MAC地址到首部封装成帧,
帧传到服务器所在的局域网时通过ARP地址解析协议找到对应的MAC地址的服务器。
【这里要说一下ARP地址歇息协议的原理】
(1)每一台主机都会在ARP cache缓冲区建立一个ARP表格,
     用来记录IP位置和实体(MAC)位置的对应关系,
     以确保资料的真实性
(2)当发送主机要发送数据包给目的主机的时候,会检查自己的ARP列表
     中是否存在该IP地址对应的MAC地址,如果有,直接将数据包发送到这个MAC
     地址,如果没有,就向本地网络发起一个ARP请求的广播包,查询目的主机
     对应的MAC地址。此ARP请求数据包里包括源主机的IP地址,
     硬件地址,以及目的主机的IP地址。
(3)网络中所有主机收到这个请求之后,会检查数据包中的目的IP是否和自
     己的IP地址一致。如果不相同就忽略此数据包,如果相同,该主机首先
     将发端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP列表中已经
     存在该IP信息,则将其覆盖,然后给源主机发送一个ARP相应数据包,
     告诉对方自己是他需要查找的MAC地址,源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,
     并利用此信息开始数据传输,如果源主机一直没有收到ARP的
     响应数据包,表示ARP查询失败【广播发送ARP请求,单播发送ARP响应】

5.服务器收到帧之后一层一层解封装

得到HTTP的请求报文,服务器根据请求报文的信息,产生HTTP响应报文,
及那个数据发送到浏览器。

6.浏览器最终使用HTML解析器

来解析HTTP响应报文实体主体里的各种资源,最终呈现页面出来

猜你喜欢

转载自blog.csdn.net/m0_37947204/article/details/81407146