前言
此篇为译文,原篇的地址:在这里。请点击查看。
我们所谈论的浏览器
现在有五种主流的浏览器 - Internet Explorer,Firefox,Safari,Chrome和Opera。我将从开源浏览器(Firefox,Chrome和Safari)中提供示例,这些浏览器是开源的。
浏览器的主要功能
浏览器的主要功能是通过向服务器请求你所需要的资源并把它通过浏览器窗口来显示出来。这些资源的格式通常是HTML,当然也有PDF,图片,或者其他类型的资源。资源的位置由用户使用URI(统一资源标识符)指定。浏览器解析和显示HTML文件的方式在HTML和CSS规范中指定,这些规范由W3C(万维网联盟)组织维护,该组织是网络的标准组织。
浏览器的用户界面有很多共同之处,常见的用户界面元素是:
- 用于插入URI的地址栏。
- 前进和后退按钮。
- 书签选项。
- 刷新和停止按钮,以刷新和停止加载当前页面。
主页按钮,让您进入您的主页。
奇怪的是,浏览器的用户界面没有在任何形式的规范中指定,只是在多年的经验和互相模仿的浏览器中形成的良好做法。
浏览器的高级结构
浏览器的主要组件是:
- 用户界面。包括地址栏,前进/后退按钮,书签菜单等等。
- 浏览器引擎。用来查询和操作渲染引擎的界面。
- 渲染引擎。负责显示所请求的内容。 例如,如果请求的内容是HTML,它负责解析HTML和CSS,并在屏幕上显示已解析的内容。
- Networking。用于网络呼叫,如HTTP请求。 它具有平台独立的接口和每个平台的下面的实现。
- UI后端。用于绘制基本的小部件,如组合框和窗口。 它暴露了一个不是平台特定的通用界面。 下面使用操作系统的用户界面方法。
- JavaScript解析器。用来解析JavaScript并执行JavaScript代码。
数据存储。这是一个持久层。 浏览器需要将各种数据保存在硬盘上,例如cookie。 新的HTML规范(HTML5)定义了“Web数据库”,它是浏览器中的一个完整(虽然很轻)的数据库。
下图显示了浏览器主要的组件:
值得一提的是,Chrome浏览器与大多数浏览器不同,它为每个tab都提供一个渲染引擎的实例。每个tab都是一个单独的进程。接下来将介绍每个组件。
组件之间的通信
Firefox和Chrome都开发了特殊的通信基础设施,它们将在一个特别的章节中讨论。
点击查看下一篇文章:《浏览器原理——渲染引擎》