从我们在地址栏输入url到网页渲染完成都经历了什么

1.将url转换成ip

    url只是方便记忆,要和目的主机通信首先需要将url转换成ip。浏览器首先会在本地查找是否有对应的IP地址,有就直接用没有就向网络上发起DNS解析请求,直到找到对应的ip地址。

2.客户端向目的主机发送http请求

    HTTP请求包括请求报头和请求主体两个部分,其中请求头包括请求的方法(GET / POST)、目标url、遵循的协议(http / https / ftp…),返回的信息是否需要缓存,以及客户端是否发送cookie等

3.用TCP协议传输报文(http是基于tcp的而不是udp)

    TCP协议通过“三次握手”等方法保证传输的安全可靠。“三次握手”的过程是,发送端先发送一个带有SYN(synchronize)标志的数据包给接收端,在一定的延迟时间内等待接收的回复。接收端收到数据包后,传回一个带有SYN/ACK标志的数据包以示传达确认信息。接收方收到后再发送一个带有ACK标志的数据包给接收端以示握手成功。在这个过程中,如果发送端在规定延迟时间内没有收到回复则默认接收方没有收到请求,而再次发送,直到收到回复为止。(tcp是基于连接的可靠传输协议)

4.使用IP协议查询MAC地址

    IP协议的作用是把TCP分割好的各种数据包传送给接收方。而要保证确实能传到接收方还需要接收方的MAC地。IP地址和MAC地址是一一对应的关系,一个网络设备的IP地址可以更换,但是MAC地址一般是固定不变的。ARP协议可以将IP地址解析成对应的MAC地址。当通信的双方不在同一个局域网时,需要多次中转才能到达最终的目标,在中转的过程中需要通过下一个中转站的MAC地址来搜索下一个中转目标。

5.在找到对方的MAC地址后,就将数据发送到目的客户端。此时,客户端发送请求的阶段结束。

    接收端的服务器在链路层接收到数据包,再层层向上直到应用层。这过程中包括在运输层通过TCP协议讲分段的数据包重新组成原来的HTTP请求报文。

6.服务器响应请求
   
服务接收到客户端发送的HTTP请求后,查找客户端请求的资源,并返回响应报文,响应报文中包括一个重要的信息——状态码。状态码由三位数字组成,其中比较常见的是200 OK表示请求成功。301表示永久重定向,即请求的资源已经永久转移到新的位置。在返回301状态码的同时,响应报文也会附带重定向的url,客户端接收到后将http请求的url做相应的改变再重新发送。404 not found 表示客户端请求的资源找不到。请求成功后,服务器会返回相应的HTML文件。

7.页面渲染

    客户端收到返回的html后,再请求镶嵌在html中的图片,css,js等文件,然后浏览器的渲染引擎将html文件渲染成页面。

你可能感兴趣的:(总结)