一、浏览器主要构成
浏览器的主要构成High Level Structure
浏览器的主要组件包括:
1) 用户界面-包括地址栏、后退/前进按钮、书签目录等,也就是你所看到的除了用来显示你所请求页面的主窗口之外的其他部分
2) 浏览器引擎-用来查询及操作渲染引擎的接口
3) 渲染引擎-用来显示请求的内容,例如,如果请求内容为html,它负责解析html及css,并将解析后的结果显示出来
4) 网络-用来完成网络调用,例如http请求,它具有平台无关的接口,可以在不同平台上工作
5) UI 后端-用来绘制类似组合选择框及对话框等基本组件,具有不特定于某个平台的通用接口,底层使用操作系统的用户接口
6) JS解释器-用来解释执行JS代码
7) 数据存储-属于持久层,浏览器需要在硬盘中保存类似cookie的各种数据,HTML5定义了web database技术,这是一种轻量级完整的客户端存储技术
关于浏览器设计,有一个简洁的概念模型:
二、Webkit介绍
WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也称MSHTML,IE 使用)。
绿色部分构成了WebKit的主要部分,形成自己的结构:
WebKit 主要包括三部分: WebKit , WebCore ,以及 JavaScriptCore ,加上所使用的库,依托的平台,其基本的体系结构 (Architecture) 如下所示:
注意有的模块相对于下面的模块有突出,这是因为此模块与下面几个模块直接相关,比如 WebCore 模块就与JavaScriptCore 、 Libraries 和 Platforms 模块直接相关。
WebKit是一个渲染引擎,Chromium是一个浏览器,它们那么分别包含哪些不同的功能模块?
WebKit:
1. HTML解析::负责HTML语言的解析
2. CSS解析:负责CSS