1.首先对域名进行DNS解析
查找缓存(浏览器,系统,路由,网路运营商,递归搜索)
2.TCP链接,三次握手
第一次,浏览器,我要发送请求了
第二次,服务器,你发,我晓得了
第三次,浏览器,那我发了
3.发送请求
请求报文:就是发送内容
4.接受响应
响应报文:晓得了,接好了。
5.页面渲染
(1).解析dom树:浏览器发现是响应报文里是html文件。那么就会先调用html解析器,然后解析为dom树。
(2).解析css树:遇到style/link标签,就是css,然后解析为cssom树
(3).构造render树:遇到script标签,调用JavaScript解析器,然后绑定事件,修改dom树和cssom树,并将dom和cssom转换为render树
(4).布局render树:根据渲染出的render树,计算节点布局。
(5).绘制render数:最后后渲染到页面。
注:期间会触发回流和重构
回流:整个页面重新渲染(例如:结构改变)
重构:渲染一部分(例如:颜色,字体大小改变)
6.断开链接,TCP四次挥手
第一次,浏览器,我要关了
第二次,服务器,你关嘛
第三次,浏览器,那我真关了哈
第四次,服务器,滚