从 URL 输入到页面展现到底发生什么?

1、DNS解析
URL是为了方便记忆,DNS是网络服务器,通过给定URL,DNS给出对应的IP地址,计算机向IP地址发请求;

2、TCP连接(TCP三次握手)
(1)客户端向服务器发起第一次请求(我想发消息了)
(2)服务器回应,表示接收到了信息(嗯,你发吧)
(3)客户端再次发起请求(我准备发了),至此,连接建立了。

3、HTTP请求
HTTP请求有四部分:请求行(请求方法、路径、协议版本) 请求头(由关键字/值对组成,它包含许多有关的客户端环境和请求正文的有用信息。) 空行 请求体(可以承载多个请求参数的数据,包含回车符、换行符和请求数据,并不是所有请求都具有请求数据。)

4、HTTP响应
同样有四部分 响应行(包含:协议版本,状态码,状态码描述) 响应头(包含响应报文的附加信息,由 名/值 对组成) 空行 响应体(包含回车符、换行符和响应返回数据,并不是所有响应报文都有响应数据)

5、浏览器拿到响应文本 HTML 后,开始渲染页面:
根据 HTML 解析出 DOM 树
根据 CSS 解析生成 CSS 规则树
结合 DOM 树和 CSS 规则树,生成渲染树
根据渲染树计算每一个节点的信息
根据计算好的信息绘制页面

6、断开连接(TCP四次挥手)
第一次挥手:由浏览器发起的,发送给服务器,我请求报文发送完了,你准备关闭吧
第二次挥手:由服务器发起的,告诉浏览器,我请求报文接受完了,我准备关闭了,你也准备吧
第三次挥手:由服务器发起,告诉浏览器,我响应报文发送完了,你准备关闭吧
被动方收到发起方的报文段以后关闭连接。发起方等待一定时间未收到回复,则正常关闭。第四次挥手:由浏览器发起,告诉服务器,我响应报文接受完了,我准备关闭了,你也准备吧

转载:https://segmentfault.com/a/1190000017184701

你可能感兴趣的:(从 URL 输入到页面展现到底发生什么?)