之前我们已经讨论过浏览器的渲染原理,今天我们来讨论下更广泛的从输入URL到渲染出页面的过程。 1. 查询URL对应的IP 首先,到 host 文件查找,如果找到则返回。 如果没有找到,去访
之前我们已经讨论过浏览器的渲染原理,今天我们来讨论下更广泛的从输入URL到渲染出页面的过程。
1. 查询URL对应的IP
首先,到 host 文件查找,如果找到则返回。
如果没有找到,去访问 DNS 服务器(一般先访问本地路由器,没有再访问更高级的 DNS 服务器),最终得到对应的 IP
2. 建立 TCP 连接
首先,通过 IP 协议,指定 出发地 和 目的地
然后,通过 OSPF 协议,计算路由的最佳路径,得到路过的每个路由器的 IP地址
最后,再利用 ARP 计算出路径经过每个路由器的 MAC地址
3. 接收 html 字节流
首先,把一个个字节拼接成字符串
然后,通过词法分析,把字符串转换为一个个 Token
最后,根据 Token,通过语法分析,构建成 DOM 树
4. 接收 css 字节流
首先,把一个个字节拼接成字符串
然后,通过词法分析,把字符串转换为一个个 Token
最后,根据 Token,通过语法分析,构建成 CSSOM 树
5. 结合 CSSOM 和 DOM,生成 Render Tree
6. 遇到 script(有3种可能),如果有相关 DOM 操作,可以修改已构建部分的 DOM 树,从而改变 Render Tree
ps: 注意 3~6 整个过程都是流式的