Skip to content

浏览器解析原理

1.浏览器整体结构

browser

  • 界面:包括地址栏、前进/后退按钮、书签菜单等。界面上除了显示所请求的网页的窗口外,它还会包括浏览器界面的各个部分。
  • 浏览器引擎:在界面和呈现引擎之间编组操作。
  • 渲染引擎:负责显示请求的内容。例如,如果请求的内容是 HTML,呈现引擎会解析 HTML 和 CSS,并在屏幕上显示解析后的内容。
  • 网络:对于 HTTP 请求等网络调用,针对位于平台独立接口后面的不同平台使用不同的实现。
  • 界面后端:用于绘制基本 widget,如组合框和窗口。此后端公开了与平台无关的通用接口。在底层使用操作系统界面方法。
  • JavaScript 解释器。用于解析和执行 JavaScript 代码。
  • 数据存储。这是一个持久性层。浏览器可能需要在本地保存各种数据,例如 Cookie。浏览器还支持 localStorage、IndexedDB、WebSQL 和 FileSystem 等存储机制。

2.主流程

渲染引擎

渲染引擎负责渲染...渲染,也就是在浏览器屏幕上显示请求的内容。

默认情况下,渲染引擎可显示 HTML 和 XML 文档及图片。

主流程展示

渲染引擎将开始从网络层获取所请求文档的内容。此操作通常以 8 kB 数据块的形式完成。

之后,以下是渲染引擎的基本流程: rendering

渲染是一个渐进的过程,为了用户更好的体验,渲染引擎不必等待全部html内容解析完毕后,就会开始构建呈现树和设置布局

webkit主流程示例: rendering2