从URL到页面渲染
每一个搞web开发都需要了解的知识,长期更新不断完善
从URL到网络请求
解析URL解析URL的协议名,域名,端口号,路径,查询参数(?),哈希值(# )等。
DNS解析如果有相应的浏览器缓存或本地缓存,则直接使用缓存,不进行DNS解析。如果没有相应的DNS缓存,则访问DNS服务器,进行DNS解析,查询出域名对应的IP地址。
建立TCP/IP连接:通过三次握手建立与服务器的连接(长连接或短连接),在此之后发送具体的请求到服务器,等待服务器的响应。浏览器根据请求作出应答,返回数据包。最后当关闭连接时,双方进行通过四次挥手断开连接。
页面渲染
浏览器渲染流程
浏览器的主要功能就是向服务端发送请求,下载解析资源显示在浏览器上。将网页内容展示到浏览器上的过程,这其实就是渲染引擎完成的。渲染引擎有很多种,这里以 webkit 为例。
WebKit 渲染引擎的主流程

从上面这个图上,我们可以看到,浏览器渲染流程如下:
- 解析 HTML Source,生成 DOM 树。
- 解析 CSS,生成 CSSOM 树。
- 将 DOM 树和 CSSOM 树结合,去除不可见元素,生成渲染树( Render Tree )。
- Layout (布局):根据生成的渲染树,进行布局( Layout ),得到节点的几何信息(宽度、高度和位置等)。
- Painting (重绘):根据渲染树以及回流得到的几何信息,将 Render Tree 的每个像素渲染到屏幕上。
