# 说说从输入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
上次更新: 2020/10/23 上午10:00:44