DNS解析
- 查找浏览器dns缓存
- 查找本地host文件
- 查找本地dns服务器缓存
- 调用本地dns服务器查询
- 调用递归调用更高一层dns服务器直至找到ip为止
进行tcp链接---三次握手
- 客户端向服务端发送一个syn为1的tcp包及一些窗口信息等
- 服务端向其回传一个syn为1的tcp包,此外还有表示确认的ack号
- 客户端向服务端发送确认确认的ack包
缓存
- 查询是否有etag且是否过期
- 查询是否有if-modified且是否过期
- 查询是否有cache-control且是否过期
- 查询是否有expired且是否过期
页面渲染
- 加载dom树(若出现了js文件,其会阻塞dom的加载,可以使用defer来开启切换线程下载,也可以使用async来开启dom加载后进行后加载)
- 加载cssom树
- 合成渲染树
- 进行重绘回流(回流引发重绘,重绘不一定引发回流)
四次挥手
- 服务器向客户端发送一个fin为1的包,开始中断发送和接收
- 客户端发送一个表示确认的ack包,开始中断发送和接收
- 客户端完成中断,发送一个fin包
- 服务端完成中断,发送一个确认的ack包