01.浏览器工作机制

浏览器工作机制

浏览器组件全景图

本节我们将会简要分析下浏览器的工作机制与原理,首先,从用户数据流的角度来看,整个交互与产生的数据包包含以下流程:

  • 用户在浏览器地址栏中输入一个URL
  • 浏览器从URL中获取域名,并从DNS中请求服务器的IP地址。
  • 浏览器创建一个HTTP包,表示它请求一个位于远程服务器上的网页。
  • 该数据包被发送到TCP层,TCP层在HTTP数据包的基础上添加自己的信息。这些信息是维持启动的会话所需要的。
  • 然后,数据包被交给IP层,IP层的主要工作是想办法把数据包从你这里发送到远程服务器。这些信息也被存储在数据包之上。
  • 数据包被发送到远程服务器。
  • 一旦收到数据包,响应也会以类似的方式发回来。

基于以上主要的流程,我们可以梳理出浏览器需要包含以下关键组成:

浏览器关键组件

  • 用户界面:这包括地址栏、后退和前进按钮、书签菜单等。从本质上讲,这是浏览器显示的除了你看到网页本身的窗口之外的部分。
  • 浏览器引擎:处理用户界面和渲染引擎之间的交互。
  • 渲染引擎:它负责显示网页。渲染引擎解析HTMLCSS,并将解析后的内容显示在屏幕上。
  • 网络:这些都是网络调用,如XHR请求,通过对不同平台使用不同的实现来实现,这些都是在一个平台独立的接口后面。
  • UI后端:它用于绘制核心小组件,如复选框和窗口。这个后端暴露了一个不针对平台的通用接口。它在下面使用操作系统的UI方法。
  • JavaScript引擎:JavaScript解析与执行的引擎。
  • 数据持久层:你的应用程序可能需要在本地存储所有数据,譬如localStorage, indexDB, WebSQL, FileSystem

Links