浏览器是怎样工作的(一):基础知识

译注:

前两天看到一篇不错的英文文章,叫做 How browsers work,该文概要的介绍了浏览器从头到尾的工作机制,包括HTML等的解析,DOM树的生成,节点与CSS的渲染等等,对于想学习浏览器源码的同学来说,实在是很棒的一篇科普文章。尽管对于每部分,该文的描述并不足够深入,但综合来讲,即使没兴趣学浏览器源码,也还是有一些值的学习的思想在里面的,可以权当开拓下视野,有益无害。

于是,我想分节挑重点翻译一下与大家分享。以下为译文:

我们要讨论的浏览器

当今主流浏览器有五类: Internet Explorer, Firefox, Safari, Chrome 以及 Opera。 我会基于开源浏览器 Firefox, Chrome 与 Safari(部分开源)来举例说明。 按照 W3C 浏览器统计, 当今(2009年10月), Firefox, Safari 及 Chrome 的总占有率已接近 60%,这是非常可观的。

浏览器的主要功能

浏览器的主要功能是展示网页资源,也即请求服务器并将结果显示在浏览器窗口中。资源的格式一般是HTML,但也有PDF、图片等其它各种格式。资源的定位由URL来实现。更多细节请参考“网络”一节。

浏览器释与展现HTML文件的方式是参照HTML与CSS规范来的,这些规范由 W3C (World Wide Web Consortium) Web标准化组织来维护。 当前HTML版本是 4 (http://www.w3.org/TR/html401/),HTML5正在进行中。当前CSS版本为2 (http://www.w3.org/TR/CSS2/),同样,版本3进行中。

过去几年里,各版本浏览器有许多各自的扩展,这使网页作者很难写出兼容性好的内容。如今这一严重的兼容性问题已经开始好转,各种浏览器都开始兼容标准规范。

各浏览器的用户接口有很多相同的地方,下面是一些常用的用户接口:

用于输入URI的地址栏

前进后退按钮

书签选项

刷新停止按钮,用于控制页面加载

主页按钮

很奇怪的是,浏览器的用户接口并没有写进任何规范中,这种极大的相似性只是在多年的实践经验以及浏览器之间的相互借鉴中形成的。HTML5规范没有规定浏览器必须有哪些交互元素,但是列出了一些通用元素,比如地址栏, 状态栏和工具栏。 当然,特定浏览器有自己独有的特性,如Firefox的下载管理器。更多内容请参考用户接口一节。

浏览器的上层结构

浏览器的主要概念如下 (1.1):

用户接口 – 包括地址栏,前进后退,书签菜单等窗口上除了网页显示区域以外的部分。

浏览器引擎 – 查询与操作渲染引擎的接口。

渲染引擎 – 负责显示请求的内容。比如请求到HTML, 它会负责解析HTML 与 CSS 并将结果显示到窗口中。

网络 – 用于网络请求, 如HTTP请求。它包括平台无关的接口和各平台独立的实现。

UI后端 – 绘制基础元件,如组合框与窗口。它提供平台无关的接口,内部使用操作系统的相应实现。

JavaScript解释器。用于解析执行JavaScript代码。

数据存储。这是一个持久层。浏览器需要把所有数据存到硬盘上,如cookies。新的HTML规范 (HTML5) 规定了一个完整(虽然轻量级)的浏览器中的数据库:’web database’。

图1: 浏览器的主要概念

需要注意的是,与其它浏览器不同,chrome使用多个渲染引擎实例,每个Tab一个,每个Tab都是一个独立进程。

我会拿出一个章节来介绍每块内容。

组件间的通信

Firefox 与 Chrome 开发了一种特殊的通信架构,这会在一个特殊章节讨论。

本文作者:hfliu 转载请注明来自:携程设计委员会

译注:

前两天看到一篇不错的英文文章,叫做 How browsers work,该文概要的介绍了浏览器从头到尾的工作机制,包括HTML等的解析,DOM树的生成,节点与CSS的渲染等等,对于想学习浏览器源码的同学来说,实在是很棒的一篇科普文章。尽管对于每部分,该文的描述并不足够深入,但综合来讲,即使没兴趣学浏览器源码,也还是有一些值的学习的思想在里面的,可以权当开拓下视野,有益无害。

于是,我想分节挑重点翻译一下与大家分享。以下为译文:

我们要讨论的浏览器

当今主流浏览器有五类: Internet Explorer, Firefox, Safari, Chrome 以及 Opera。 我会基于开源浏览器 Firefox, Chrome 与 Safari(部分开源)来举例说明。 按照 W3C 浏览器统计, 当今(2009年10月), Firefox, Safari 及 Chrome 的总占有率已接近 60%,这是非常可观的。

浏览器的主要功能

浏览器的主要功能是展示网页资源,也即请求服务器并将结果显示在浏览器窗口中。资源的格式一般是HTML,但也有PDF、图片等其它各种格式。资源的定位由URL来实现。更多细节请参考“网络”一节。

浏览器释与展现HTML文件的方式是参照HTML与CSS规范来的,这些规范由 W3C (World Wide Web Consortium) Web标准化组织来维护。 当前HTML版本是 4 (http://www.w3.org/TR/html401/),HTML5正在进行中。当前CSS版本为2 (http://www.w3.org/TR/CSS2/),同样,版本3进行中。

过去几年里,各版本浏览器有许多各自的扩展,这使网页作者很难写出兼容性好的内容。如今这一严重的兼容性问题已经开始好转,各种浏览器都开始兼容标准规范。

各浏览器的用户接口有很多相同的地方,下面是一些常用的用户接口:

用于输入URI的地址栏

前进后退按钮

书签选项

刷新停止按钮,用于控制页面加载

主页按钮

很奇怪的是,浏览器的用户接口并没有写进任何规范中,这种极大的相似性只是在多年的实践经验以及浏览器之间的相互借鉴中形成的。HTML5规范没有规定浏览器必须有哪些交互元素,但是列出了一些通用元素,比如地址栏, 状态栏和工具栏。 当然,特定浏览器有自己独有的特性,如Firefox的下载管理器。更多内容请参考用户接口一节。

浏览器的上层结构

浏览器的主要概念如下 (1.1):

用户接口 – 包括地址栏,前进后退,书签菜单等窗口上除了网页显示区域以外的部分。

浏览器引擎 – 查询与操作渲染引擎的接口。

渲染引擎 – 负责显示请求的内容。比如请求到HTML, 它会负责解析HTML 与 CSS 并将结果显示到窗口中。

网络 – 用于网络请求, 如HTTP请求。它包括平台无关的接口和各平台独立的实现。

UI后端 – 绘制基础元件,如组合框与窗口。它提供平台无关的接口,内部使用操作系统的相应实现。

JavaScript解释器。用于解析执行JavaScript代码。

数据存储。这是一个持久层。浏览器需要把所有数据存到硬盘上,如cookies。新的HTML规范 (HTML5) 规定了一个完整(虽然轻量级)的浏览器中的数据库:’web database’。

图1: 浏览器的主要概念

需要注意的是,与其它浏览器不同,chrome使用多个渲染引擎实例,每个Tab一个,每个Tab都是一个独立进程。

我会拿出一个章节来介绍每块内容。

组件间的通信

Firefox 与 Chrome 开发了一种特殊的通信架构,这会在一个特殊章节讨论。

本文作者:hfliu 转载请注明来自:携程设计委员会


相关文章

  • 互联网基础知识
  • <互联网及其应用>上机练习题 参考答案 一. 简答题 1.什么是动态IP地址,有何优势? 答:通常PC运行TCP/IP协议,所以需要一个IP地址,如果没有足够的IP地址,需要动态分配.ISP一般拥有一批IP地址,当新的用户建立连 ...查看


  • 2015教师计算机培训计划
  • 2015教师计算机培训计划 第1篇:教师计算机培训计划 为了进一步提高全校教师计算机应用水平,让信息技术更好的服务于教育教学.特制定本计划. 一.培训目标: (一)了解信息技术基础知识及其在教学中的应用. (二)掌握用键盘输入英文字符.汉字 ...查看


  • 如何利用好新课程多媒体教学资源
  • 如何用好新课程多媒体教学资源库平台 ? 为了确实贯彻<中共中央国务院关于深化教育改革全面推进素质教育的决定>和<国务院关于基础教育改革与发展的决定>,2001年7月,国家教育部推出了<基础教育课程改革纲要(试 ...查看


  • 怎样制作网页
  • 怎样制作网页 首先,可以告诉想学网页制作的朋友.学习制作网页和学习其它知识一样,是要有基础的.在基础之上学习起来会比较轻松和快捷的.其次,要清楚学习它是用来做什么. 建议你要具备的条件:对电脑熟练操作,使用电脑最好在一年以上,对网页设计感兴 ...查看


  • 怎样花2月时间去应聘互联网公司
  • 找工作也快两月了,感受颇多,最近看了一篇<怎样花2年时间去面试一个人>的博客,很有感触,将自己的想法写出来. 在找工作的两月中,自己从四大门户:新浪.搜狐.网易.腾讯到业界领先的百度,搜狗.淘宝以及行业巨头的微软;从几个人创业的 ...查看


  • 湘教版七年级信息技术教案
  • 2007年下学期七年级信息技术教学计划 一.学情分析 1.本期我任教七年级的信息技术课,学生大多数来自农村,没接触过电脑的同学占大多数,少部分城镇学生的电脑期操作已较熟练.但有共同的一点是同学们普遍对电脑操作的技能和知识缺少完整的训练,知识 ...查看


  • 高中信息技术[在Internet上发布信息]教学案例
  • 我想有一个"家" __<在Internet上发布信息>教学案例 [教学设计] 一.主题背景 信息技术课程由计算机课程发展而来,但随着知识经济发展,在全球范围形成了一个信息化的氛围,多媒体.网络技术的应用越来越 ...查看


  • 广东省信息技术初二年级(下)教案全
  • 龙城一中 八年级下册<信息技术>教案 广东省初级中学课本 信息技术教案 第二册(下) 目 录 第一章 探索计算机网络世界 ................................................... 2 ...查看


  • web前端工程师工资待遇怎样呢?
  • www.tedu.cn 美国上市公司 亿元级外企IT 培训企业 web 前端工程师工资待遇怎样呢? web 前端开发工程师是一种全新的职业,在IT 行业现在的关注度现在也很高,伴随着当下对用户体验的重视,无论互联网公司还是大型企业都把前端作 ...查看


热门内容