从一个url到最终页面渲染完成,发生了什么?

时间:2025-01-19 08:50:09

解析:将域名地址解析为ip地址

- 浏览器DNS缓存
- 系统DNS缓存
- 路由器DNS缓存
- 网络运营商DNS缓存
- 递归搜索:
  - .com 域名下查找DNS解析
  - .baidu 
  - blog 
  - 出错了

连接,TCP的三次握手

- 第一次握手,由浏览器发起,告诉服务器我要发送请求了
- 第二次握手,由服务器发起,告诉浏览器我准备接受了,你赶紧发吧
- 第三次握手,由浏览器发送,告诉服务器,我马上就发了,准备就收吧

3.发送请求

- 请求报文:Http协议的通信内容

4.接受响应

- 响应报文

5.渲染页面

- 遇见HTML标记,浏览器调用HTML解析器解析成Token 并构建成dom树
- 遇见style/link 标记,浏览器调用CSS解析器,处理CSS标记并构建cssom树
- 遇见script标记,调用JavaScript解析器,处理script代码(绑定事件:修改dom树,cssom树)
- 将dom树和cssom树合并成一个渲染树
- 根据渲染树来计算布局,计算每个节点的几何信息
- 将节点的颜色绘制到屏幕上(渲染)
注意:这五个步骤不一定是按照顺序执行,如果dom树或cssom树被修改,可能会执行多次渲染和布局。
往往实际页面中,这些步骤都会执行多次的。

6.断开连接:TCP四次挥手

- 第一次挥手,由浏览器发起的,发送给服务器,我的东西发完了(请求报文),你准备关吧
- 第二次挥手,由服务器发起的,告诉浏览器,我的东西接受完了(请求报文),我准备关闭了,你也准备吧
- 第三次挥手,由服务器发起,告诉浏览器,我的东西发完了(响应报文),你准备关吧
- 第四次挥手,由浏览器发起,告诉服务器,我的东西接收完了(响应报文),你也准备关吧