- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深入解析浏览器的幕后工作原理
深入解析浏览器的幕后工作原理
这是一篇全面介绍 Webkit 和 Gecko 内部操作的入门文章,是以色列开发人员塔利·加希
尔大量研究的成果。在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据
(请参见资源),并花了很多时间来研读网络浏览器的源代码。她写道:
在 IE 占据90% 市场份额的年代,我们除了把浏览器当成一个“黑箱”,什么也做不了。但
是现在,开放源代码的浏览器拥有了过半的市场份额,因此,是时候来揭开神秘的面纱,一
探网络浏览器的内幕了。呃,里面只有数以百万行计的 C++ 代码...
塔利在她的网站上公布了自己的研究成果,但是我们觉得它值得让更多的人来了解,所以我
们在此重新整理并公布。
作为一名网络开发人员,学习浏览器的内部工作原理将有助于您作出更明智的决策,并理
解那些最佳开发实践的个中缘由。尽管这是一篇相当长的文档,但是我们建议您花些时间
来仔细阅读;读完之后,您肯定会觉得所费不虚。保罗·爱丽诗 (Paul Irish),Chrome 浏览
器开发人员事务部
1.简介
网络浏览器很可能是使用最广的软件。在这篇入门文章中,我将会介绍它们的幕后工作原理。
我们会了解到,从您在地址栏输入 直到您在浏览器屏幕上看到 Google 首页的
整个过程中都发生了些什么。
1.1 我们要讨论的浏览器
目前使用的主流浏览器有五个:Internet Explorer、Firefox、Safari、Chrome 浏览器和 Opera 。
本文中以开放源代码浏览器为例,即 Firefox、Chrome 浏览器和 Safari (部分开源)。根据
StatCounter 浏览器统计数据,目前(2011 年 8 月)Firefox、Safari 和 Chrome 浏览器的
总市场占有率将近 60% 。由此可见,如今开放源代码浏览器在浏览器市场中占据了非常坚
实的部分。
1.2 浏览器的主要功能
浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示您选择的网络资源。这里所
说的资源一般是指 HTML 文档,也可以是 PDF、图片或其他的类型。资源的位置由用户使
用 URI (统一资源标示符)指定。
浏览器解释并显示 HTML 文件的方式是在 HTML 和 CSS 规范中指定的。这些规范由网络
标准化组织 W3C (万维网联盟)进行维护。
多年以来,各浏览器都没有完全遵从这些规范,同时还在开发自己独有的扩展程序,这给网
络开发人员带来了严重的兼容性问题。如今,大多数的浏览器都是或多或少地遵从规范。
浏览器的用户界面有很多彼此相同的元素,其中包括:
用来输入 URI 的地址栏
前进和后退按钮
书签设置选项
用于刷新和停止加载当前文档的刷新和停止按钮
用于返回主页的主页按钮
奇怪的是,浏览器的用户界面并没有任何正式的规范,这是多年来的最佳实践自然发展以及
彼此之间相互模仿的结果。HTML5 也没有定义浏览器必须具有的用户界面元素,但列出了
一些通用的元素,例如地址栏、状态栏和工具栏等。当然,各浏览器也可以有自己独特的功
能,比如 Firefox 的下载管理器。
1.3 浏览器的高层结构
浏览器的主要组件为 (1.1):
1. 用户界面 - 包括地址栏、前进/后退按钮、书签菜单等。除了浏览器主窗口显示的您请
求的页面外,其他显示的各个部分都属于用户界面。
2. 浏览器引擎 - 在用户界面和呈现引擎之间传送指令。
3. 呈现引擎 - 负责显示请求的内容。如果请求的内容是 HTML,它就负责解析 HTML 和
CSS 内容,并将解析后的内容显示在屏幕上。
4. 网络 - 用于网络调用,比如 HTTP 请求。其接口与平台无关,并为所有平台提供底层
实现。
5. 用户界面后端 - 用于绘制基本的窗口小部件,比如组合框和窗口。其公开了与平台无关
的通用接口,而在底层使用操作系统的用户界面方法。
6. JavaScript 解释器。用于解析和执行 JavaScript 代码。
7. 数据存储。这是持久层。浏览器需要在硬盘上保存各种数据,例如
您可能关注的文档
- 消费者对慈善和商业赞助的态度如何_基于双重态度理论的研究.pdf
- 消防安全技术实务重点要点之二.pdf
- 消防局消防安全技术综合能力测试卷2015(附答案).pdf
- 海西之巅-厦门国际中心工程施工管理.pdf
- 消防实务防排烟和应急照明.pdf
- 消防泵、给水泵价格表-.pdf
- 涉及第三者的防卫行为探析.pdf
- 消防工程师《消防安全技术综合能力》考点.pdf
- 涉外机构面试英文-可能会发生的对话.pdf
- 消防设备安装工程学习资料(普通消火栓系统).pdf
- 功能设计_MM_MM015_报废单_20080109_v2.0.doc
- 功能设计_MM_MM021_采购订单批导入程序_20080108_v1.0.doc
- 功能设计_MM_MM020_出库单_20071205_v2.1.doc
- 功能设计_MM_MM019_入库单_20071205_v2.1.doc
- 功能设计_MM_MM018_领料单_20080114_v2.0.doc
- 功能设计_MM_MM016_ERP与招投标系统接口_20080327_v1.2.doc
- 功能设计_MM_MM014_退库单_20080109_v1.0.doc
- 功能设计_MM_MM013_物料盘点清单_20080114_v2.0.doc
- 中考数学知识点10 一元一次不等式(组)(2).pdf
- 七年级数学优质课公开课教案教学设计期中综合检测.pdf
文档评论(0)