1. 苏葳的备忘录首页
  2. 因特网

浏览器是如何工作的

浏览器 原理因特网浏览器可能是使用最广泛的软件了。在本文中我将解释下在幕后它们是怎么工作的。我们会看看从你在地址栏里键入“google.com”开始,一直到你看到浏览器屏幕上出现谷歌页面时都发生了什么。现代浏览器的组成结构跟工作原理相当复杂,因此我会写一系列的文章来描述这些结构的细节,并阐述每个组成部份的工作原理,以及最后这些部份如何串联起来,把一个精美的网页呈现在人们面前。

我们要谈到的浏览器

今天使用的有5种主要浏览器— Internet Explorer,Firefox,Safari,Chrome和Opera。

我会给出开源浏览器的例子—Firefox,Chrome和Safari,它是部份开源的。

根据W3C的浏览器统计,当前(2009年10月),Firefox,Safari和Chrome一起占据了将近60%的市场。

因此今天开源浏览器在浏览器市场是个举足轻重的组成部份。

浏览器的主要功能

浏览器的主要功能是,通过从服务器请求内容并且把它显示在浏览器窗口里,展现你选择的因特网资源。资源的格式通常是HTML,但也有PDF,图片以及其它格式。资源位置通过使用一个URI(统一资源定位符)指定。我们会在网络一章里详细讨论。

浏览器解释和显示HTML文件的方式在HTML和CSS规范里指定。这些规范由W3C组织(世界万维网联盟)维护,这是因特网的标准化组织。

当前HTML版本是4(http://www.w3.org/TR/html401/)。版本5正在制订中。当前CSS版本是2(http://www.w3.org/TR/CSS2/),版本3也在制订当中。

多年以来,浏览器只遵循标准的一部份,并且开发它们自己的扩展。这给网页开发者带来了严重的兼容性问题。今天大多数浏览器或多或少的符合规范。

浏览器用户界面之间有很多共同之处。通用的用户界面元素有:

输入URI的地址栏

后退和前进按钮

书签选项

用于刷新和停止当前文档加载的刷新和停止按钮

能让你返回首页的的主页按钮

实在奇怪的是,没有任何正式规范指定浏览器用户界面,它的形成来自于成年累月的用户体验实践,以及浏览器间的相互借鉴。

HTML5规范也没有定义一个浏览器必须有的UI元素,但列出了一些通用元素。其中有地址栏,状态条和工具条。更多的见用户界面一章。

浏览器的高层结构

浏览器的主要组件有(1.1):

1 用户界面—包括地址栏,后退/前进按钮,书签菜单等等。浏览器的每个组成部份显示的就是你看到的请求页面主窗口之外的部份。

2 浏览器引擎—查询和操作渲染引擎的接口。

3 渲染引擎—负责显示请求到的内容。例如请求到的内容是HTML,它就负责处理HTML和CSS并把处理后的内容显示在屏幕上。

4 网络—供网络调用使用,象HTTP请求。它有平台无关的接口和每个平台下的实现。

5 UI后端—用于绘制基本的小工具象组合框和窗口。它展现的是非平台相关的通用界面。在它下层使用了平台用户界面方法。

6 JavaScript解释器—用于处理和执行JavaScript代码。

7 数据存储—这是一个持久化层。浏览器需要保存所有种类的数据到硬盘上。例如,cookie。新的HTML规范(HTML5)定义了“因特网数据库”,它是一个完整的(尽管轻量)浏览器里的数据库。

浏览器是如何工作的

需要着重指出的是,Chrome,不象大多数浏览器,它有多个渲染引擎实例–每个选项卡一个,每个选项卡是个独立的进程。

我会为每个组成部份写一章。

组件间的通讯

Firefox和Chrome两者都开发了特殊的通讯架构。

我将会在某个章节讨论它。

(待续)

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/2000.html

发表评论

邮箱地址不会被公开。 必填项已用*标注