从浏览器输入网址到显示页面的全过程

390 阅读2分钟

这个过程主要包括:DNS解析、TCP三次握手、HTTP请求、HTTP响应、TCP四次挥手、文件解析展现。

  1. DNS对输入url进行解析,得到主机ip地址

  2. 然后浏览器向位于该ip地址的80端口的HTTP服务器发起TCP三次握手

(1) 客户端发送一个带SYN标志的TCP报文到服务器,这是第一次握手。

(2) 服务器接收到报文后,回传一个带有SYN/ACK标志的数据包(SYN标志表示对客户端SYN数据包的回应,发送ACK标志是询问客户端是否准备好进行数据通讯),这是第二次握手。

(3) 客户端向服务器再回传一个带有ACK标志的数据包,确认通讯正常,握手结束,这是第三次握手。

  1. TCP三次握手之后,客户端向服务器发送HTTP请求命令(GET/POST)(HTTP报文从应用层传送到传输层;传输层上TCP将报文分割成报文段并打上序列标号和端口号,传给网络层;网络层在TCP报文段上添加源目ip地址和ip报头,生成ip数据包,传至链路层;链路层在MAC帧的数据部分装上ip数据包,添加源目主机MAC地址和MAC报头,根据目的MAC地址发送数据包)。

  2. 服务器接收请求,返回HTTP响应(回传状态行、响应头、应答文件)。

  3. 客户端收到HTTP响应,TCP进行四次挥手,关闭TCP连接。

(1) 服务器向客户端发送一个FIN报文段。

(2) 客户端接收到FIN包之后,回传一个ACK报文段表示收到。

(3) 客户端关闭服务器连接,发送一个FIN包给服务器。

(4) 服务器回传一个ACK包表示收到。

  1. 浏览器对HTML/CSS/JS文件进行解析,构建DOM树,构建、布局、绘制render树,显示页面。