从一个url地址到最终页面渲染完成,发生了什么?
1、DNS 解析 : 将域名地址解析为IP地址
- 浏览器DNS缓存
- 系统DNS缓存
- 路由器DNS缓存
- 网络运营商DNS缓存
- 递归搜索: www.baidu.com
- .com域名下查找DNS解析
- .baidu域名下查找DNS解析
- www域名下查找DNS解析
- 还找不到出错了
2、TCP连接三次握手
3、发送请求
- 请求报文
4、接收响应 - 响应报文
5、渲染页面 - 遇到HTML标记,浏览器调用HTML解析器解析成 Token 并构建dom树;
- 遇到style/link标记,浏览器调用css解析器,处理css标记并构建 cssom树;
- 遇到javascript标记,调用javascript解析器,处理script代码(绑定事件,修改dom树/cssom树)
- 将dom 树和cssdom树和cssom树合并成渲染树
- 根据渲染树来计算布局,计算每个节点的几何信息(布局)
- 将各个节点颜色重绘到屏幕上(渲染)
注意: 这五个步骤不一定按照顺序执行,如果dom树或cssom树被修改了,可能会指定多次重绘重排。
6、 断开连接, TCP 四次挥手