流程概述
1. URL
在浏览器地址栏内输入url地址
2. DNS
Domain Name System 域名解析系统,DNS解析就是域名解析。
2.1 查找缓存 cache
- Browser,从浏览器缓存内查找DNS缓存
- Operation System,从操作系统内查找DNS缓存
- Router,从本地路由器内查找DNS缓存
- ISP (internet service provider),1 2 3 都没有,就会发送到ISP,ISP有更大范围的DNS缓存
2.2 递归查找
- 根域名服务器,DNS查询会先发送到根域名服务器,根域名服务器重定向到管理.com.cn.net域名的顶级服务器
- 顶级域名服务器(TDL服务器),顶级域名服务器再转向权威域名服务器
- 权威域名服务器,此服务器有该域名正确的IP地址
2.3 返回ip地址
- 权威服务器把查到的IP,返回到客户电脑
2.4 递归查找
- 返回的IP,一般会被缓存到浏览器,操作系统,路由器和ISP缓存内,以便以后快速使用
3. TCP
TCP(Transmission Control Protocol) 传输控制协议,TCP是一种面向连接的协议,用于在网络中的两个端点之间建立可靠的会话,为HTTP请求提供准确/可靠的通讯通道。
3.1 TCP链接建立过程,俗称三次握手:
- 第一次握手,client ->
SYN包-> server - 第二次握手,server ->
SYN-ACK响应包-> client - 第三次握手,client ->
ACK包-> server
4. requese
- 请求头
- 请求体
- 请求方式
5. response
- 响应头
- 响应体
6. render
6.1 解析HTML CSS
HTML → DOM Tree → 合并domtree和cssom → RenderTree 渲染树 → → → → → 绘制 → → → → 显示
↓ ↑ ↓ ↑ ↓ ↑
csslink → css → CssOM → ↑ Layout 计算大小/位置 计算/合成生成布局树
6.2 渲染Render,布局layout,绘制Paint
6.3 composite 合成
- 普通图层
- 复合涂层,会开启GPU线程,图层单独绘制。如:fixed / transforms 旋转 透明度 / animation 动画 / will-change 高速浏览器那些属性会变化