深入解析浏览器的幕后工作原理.pdf

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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. 数据存储。这是持久层。浏览器需要在硬盘上保存各种数据,例如

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档