浏览器的请求到发送到返回都经历了什么?

Q1.浏览器的一个请求从发送到返回都经历了什么,讲的越详细越好

1.用户输入url,浏览器内部代码将url进行拆分解析
2.浏览器先去找本地的hosts文件,然后检查是否有对应的域名、ip对应关系,如果有,就向其ip发送请求,
如果没有就把把domiain(域名发)送给dns(域名服务器)进行解析,讲域名解析成对应的服务器ip地址,发回给服务器
3.dns三次解析得到ip,浏览器拿到服务器ip后,再进行网络通信
应用层客户端发送http请求,请求方式(post,get,put,delete,head),cookie,协议(http协议,https,ftp协议等待)是否有缓存等等,请求行,请求头,请求体是否信息都正确,然后传输层TCP传输报文.
TCP协议为传输报文提供可靠的字节流服务,为了方便传输,把大块的数据分割成报文段为单位的数据包进行管理,并进行编号,方便服务器接收时能准确的还原报文信息,TCP协议通过三次握手等方法进行传输保证可靠性
然后网络层IP协议查询MAC地址.
IP协议的作用是把TCP分割好的各种数据包传送给接收方。而要保证确实能传到接收方还需要接收方的MAC地址,也就是物理地址。IP地址和MAC地址是一一对应的关系,一个网络设备的IP地址可以更换,但是MAC地址一般是固定不变的。ARP协议可以将IP地址解析成对应的MAC地址。当通信的双方不在同一个局域网时,需要多次中转才能到达最终的目标,在中转的过程中需要通过下一个中转站的MAC地址来搜索下一个中转目标。
数据到达数据链路层
找到对方的mac地址后,再把数据发送到数据链路层传输,这时客户端的发送请求的过程结束
服务器接收数据后,接收端的服务器在链路层接收到数据包,再层层向上直到应用层。这过程中包括在运输层通过TCP协议将分段的数据包重新组成原来的HTTP请求报文。
服务器响应请求时,会去查找客户端请求的资源,并返回响应报文,并返回状态码。并加载前端css,js资源等渲染页面
参考这篇文章
https://www.cnblogs.com/echo-hui/p/9298203.html

猜你喜欢

转载自www.cnblogs.com/yeyeyeyey/p/12106310.html