当在浏览器里面输入url会发生什么?
- 应用层
当在浏览器里面输入url的时候,浏览器会现在本机查找url对应的IP地址,如果没有,那么就会向上一级发出DNS请求,知道找到对应的IP地址或者找到根DNS服务器。当找到对应的IP地址的时候,浏览器发出http请求,这时http请求里面包含http报头和一些相关的信息。 - 传输层
在传输层,主要的目的是使用TCP建立可靠的连接和将应用层的数据进行分组。在建立连接的时候使用3次握手,在分组的时候需要加上TCP的报头相关信息。
三次握手链接 - 网络层
网络层主要功能是在路由中选择合适的路由线路,此时用到的协议是IP协议。但是在网络的链路中传输数据的时候必须知道目的MAC地址,在本地主机里面会有一张ARP缓存表,如果有目的ip,那么可以查出对应的MAC地址,如果没有那么会使用ARP协议,发送广播,比如:我的IP是ip1,我的MAC地址是mac1,我想知道ip2的MAC地址,当同一个局域网里面的主机接收到广播的时候如果需要的ip和自己的ip相同则会返回应答,我的IP是ip2,我的MAC地址mac2,返回给本主机,这样就获得了目的主机的MAC地址,接着就是封装自己的报头,将数据传输给数据链路层。 数据链路层
在得到目的主机的MAC地址后,接收到数据之后进行封装成帧就可以在数据链路上传输了。(发送端完毕)服务器接收数据
数据链路层接收到数据之后逐层向上解包,最后通过传输层将分组进行重新排序,组成原来的http报文,在向上交给应用层,由应用层对http进行分析。
在分析的时候服务器首先会对客户端请求的资源进行查找。- 服务器返回请求
如果服务器找到了客户端需要的资源,会将客户端需要的资源进行返回。