1.DNS解析,将域名地址解析为IP地址
-浏览器DNS缓存
-系统DNS缓存
-路由DNS缓存
-网略运营商DNS缓存
-递归搜索:blog.baidu.com
----.com域名下查找DNS解析
-----.baidu域名下查找DNS解析
-----.blog域名下查找DNS解析
----出错了
2.TCP连接,TCP三次握手
- 第一次握手,有浏览器发起,告诉服务器我要发送请求了
- 第二次握手,有服务器发起,告诉浏览器我准备接受了,你赶紧发吧
- 第三次握手,有浏览器发起,告诉服务器我马上就发了,准备接受吧
3.发送请求
–请求报文:http协议的通信内容
4.接受响应
–响应报文
5.渲染页面
-
遇见HTML标记,浏览器调用HTML解析器解析成token并构建成dom树
-
遇见style/link标记,浏览器调用css解析器,处理css标记并构建成cssdom树,
-
遇见script标记,浏览器调用javascript解析器,处理script代码(绑定事件,修改dom树/cssom树)
-
将dom树和cssom树合并成一个渲染树
-
根据渲染树来计算布局,计算每个节点的几何信息(布局)
-
将各个节点颜色绘制到屏幕上(渲染)
注意
这个五个步骤不一定按照顺序执行,如果dom树或cssom被修改,可能会执行多次布局和渲染
往往实际页面中,这些步骤都会执行多次的
6,断开连接:TCP四次挥手
- 第一次挥手:由浏览器发起,发给服务器,我东西发送完了(请求报文),你准备关闭吧
- 第二次挥手:由服务器发起,发给浏览器,我东西接受完了(请求报文),我准备关闭了,你也准备吧
- 第三次挥手:由服务器发起,发给浏览器,我东西发送完了(响应报文),你准备关闭吧
- 第四次挥手:由浏览器发起,发给服务器,我东西接受完了,我准备关闭了(响应报文),你也准备吧我准备关闭