网页浏览器的架构
网络浏览器如何工作?[*]体系结构以及不同组件如何协同工作
[*]渲染引擎的工作原理
[*]下图说明了 Web 浏览器的各个部分以及它们如何相互交互。
用户界面:这是浏览器的用户界面。它包括地址栏,后退按钮,书签选项,刷新按钮等。浏览器的用户界面没有在任何正式规范中指定,而是来自数十年经验(以及浏览器相互复制)形成的做法。因此,所有浏览器的 UI 彼此非常相似。浏览器引擎:浏览器引擎在浏览器的用户界面和浏览器的呈现引擎之间封送操作。当您键入新网站并按 Enter 键时,浏览器 UI 将告知浏览器引擎,然后浏览器引擎将与呈现引擎进行通信。渲染引擎:呈现引擎负责显示请求的内容。渲染引擎将从网络层获取所请求文档的内容开始。它接收 HTML 代码并对其进行分析以创建 DOM(文档对象模型)树。然后,呈现引擎将解析 CSS 以构建 CSSOM(CSS 对象模型)。它就像DOM,但用于CSS而不是HTML。在解析 CSS 和创建 CSSOM 时,浏览器会通过网络层下载其他资产,如 JavaScript 文件。渲染引擎与 JavaScript 引擎通信以执行 JavaScript 代码并操作 DOM 和 CSSOM。然后,渲染引擎采用 DOM 和 CSSOM,并将它们组合在一起以创建渲染树。然后,呈现引擎使用 UI 后端在屏幕上布置网站,最后在屏幕上绘制像素。渲染引擎经历的整个过程称为关键渲染路径。渲染引擎的示例包括:
[*]Safari - WebKit Rendering Engine
[*]Chrome - Blink Rendering Engine (Blink 是 WebKit 的一个分支)
[*]火狐 - 壁虎渲染引擎
下面更详细地介绍 WebKit 的流程网络层网络层负责进行网络调用以获取资源。它施加了正确的连接限制,格式化请求,处理代理,缓存等等。您可以在此处阅读有关网络层的更多信息。JavaScript EngineJavaScript 引擎用于在 DOM 或 CSSOM 上解析和执行 JavaScript 代码。JavaScript代码由Web服务器提供,也可以由Web浏览器(浏览器扩展或浏览器的功能,如自动广告拦截)提供。早期的浏览器使用 JavaScript 解释器,但现代 JavaScript 引擎使用即时编译来提高性能。JavaScript Engine 的例子包括
[*]Chrome - V8 JavaScript Engine
[*]Safari - JavaScriptCore
[*]火狐 - 蜘蛛猴引擎
用户界面后端:此图层负责绘制基本微件,如选择或输入框和窗口。在它下面使用操作系统 UI 方法。呈现引擎在布局和绘制阶段使用 UI 后端层在浏览器上显示网页。数据存储:浏览器需要在本地保存数据(Cookie、缓存等),因此数据存储组件会处理此部分。现代浏览器还支持本地存储、IndexedDB 和 FileSystem 等存储机制
页:
[1]