# 说说从输入URL到看到页面发生的全过程
- 1.读取缓存: 搜索自身的 DNS 缓存。(如果 DNS 缓存中找到IP 地址就跳过了接下来查找 IP 地址步骤,直接访问该 IP 地址。)
- 2.DNS 解析:将域名解析成 IP 地址
- 3.TCP 连接:TCP 三次握手,简易描述三次握手
- 客户端:服务端你在么?
- 服务端:客户端我在,你要连接我么?
- 客户端:是的服务端,我要连接。
- 连接打通,可以开始请求来
- 4.发送 HTTP 请求
- 请求报文, HTTP协议的通信内容
- 5.服务器处理请求并返回 HTTP 报文
- 6.浏览器解析渲染页面
- 7.断开连接:TCP 四次挥手
关于第六步浏览器解析渲染页面又可以聊聊如果返回的是html页面
- 根据 HTML 解析出 DOM 树
- 根据 CSS 解析生成 CSS 规则树
- 结合 DOM 树和 CSS 规则树,生成渲染树
- 根据渲染树计算每一个节点的信息
- 根据计算好的信息绘制页面
注意: 这五个步骤不一定按照顺序执行, 如果Dom树或cssom树被修改了, 可能会执行多次布局和渲染 往往实际页面中, 这些步骤都会执行多次的
# 解读上面提到的 三次握手,四次挥手 (网络通信的过程)
这个可以略过, 感兴趣的自行了解
# TCP三次握手
(1) 第一次握手:由浏览器发起, 告诉服务器我要发送请求了
(2) 第二次握手:由服务器发起, 告诉浏览器我准备接受了, 你赶紧发送吧
(3) 第三次握手:由浏览器发送, 告诉服务器, 我马上就发了, 准备接收吧
# TCP四次挥手
(1) 第一次挥手:由浏览器发起的, 发送给服务器, 我东西发送完了 (请求报文), 你准备关闭吧
(2) 第二次挥手:由服务器发起的, 告诉浏览器, 我东西接收完了(请求报文), 我准备关闭了, 你也准备吧
(3) 第三次挥手:由服务器发起, 告诉浏览器, 我东西发送完了 (响应报文), 你准备关闭吧
(4) 第四次挥手:由浏览器发起, 告诉服务器, 我东西接收完了(响应报文), 我准备关闭了, 你也准备吧
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17