How browsers work<一>介绍
2016-02-28 19:48
197 查看
浏览器或许是使用最广泛的软件,本书将解释在浏览器显示背后的工作原理,我们将了解当我们在浏览器地址栏键入google.com到显示出google页面中间的工作过程。
如今的浏览器
现今主要的5大类浏览器-Internet Explorer, Firefox, Safari, Chrome and Opera。根据浏览器使用情况(如图)
可看出现今开源的浏览器(Firefox, Safari, Chrome)使用占市场大部分,本书也将结合这些开源的浏览器进行讲解。
关于主要浏览器内核介绍
Internet Explorer:内核是Trident,是微软开发的一种排版引擎
chrome:内核是WebKit,WebKit内核代表作品Safari、Chromewebkit 是一个开源项目,包含了来自KDE项目和苹果公司的一些组件,主要用于Mac OS系统
Firefox:内核是Gecko,Gecko内核代表作品Mozilla FirefoxGecko是一套开放源代码的、以C++编写的网页排版引擎。Gecko是最流行的排版引擎之一,仅次于Trident
Opera:内核是Presto,Presto内核代表作品OperaPresto是由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。它取代了旧版Opera 4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版
更多关于浏览器内核及发展可查看http://web.jobbole.com/84826/;
浏览器的主要作用
浏览器的主要作用是在浏览器窗口中呈现你向服务器请求的资源,资源的格式通常是HTML也有其他的如PDF,图片等,资源的定位使用URL(统一资源定位器),更多内容见网络章节。
浏览器将特定语法规则的HTML和CSS翻译并显示,相应的规则说明书由一个网络标准制定的非赢利组织W3C(W3C是World Wide Web Consortium(万维网联盟)的缩写)来制定,目前的HTML最新标准版本是4,版本5仍在完善中;CSS最新版本是3。以前,不同浏览器有自己的特殊部分并发展自己的版本,这样给web开发者造成严重的开发问题,程序员要花大部分时间去考略兼容性。如今,大多数浏览器都已有许多相同的用户接口,方便了用户的使用,这些相同的接口有:
1.地址栏,方便输入URL;
2.前进后退按钮;
3.书签选项;
4.刷新和暂停加载当前文档的按钮;
5.方便访问主页的主页键;
说来也奇怪,浏览器的这些用户使用接口不是任何规格说明书规定的,而是长期的开发经验形成的一个好的开发实例以及浏览器开发中的不断模仿的结果。HTML5不必定义浏览器的必须具有的UI接口,但是列出一些规范的接口,有地址栏,状态栏以及工具栏,也有一些特殊的浏览器接口,如Firefox的下载管理器(downloads manager),更多内容参照用户接口章节。
浏览器的层次结构High Level Structure
浏览器主要由以下几部分组成:
1.用户使用接口-包括地址栏,前后退导航条,书签菜单等,除了加载你请求的页面显示的部分都是用户使用接口;
2.浏览器引擎-查询和操作渲染引擎;
3.渲染引擎-请求内容的渲染,比如:如果请求的内容是HTML,它将解析HTML和CSS并将解析的内容显示到浏览器窗口中;
4.网络-用于网络的请求,比如HTTP请求,它具有跨平台性,底层的实现不依赖具体的平台;
5.UI后端-用来绘制一些基本的部件,如组合框和窗口。它提供一般的接口,这些接口不具跨平台性,它的实现依赖操作系统提供的用户接口;
6.javascript解释器-用于解释和执行javascript代码;
7.数据存储-这是一个持久层,浏览器需要存储许多数据到磁盘上,例如,cookies。新的HTML(HTML5)定义了web数据库,它是一个完整的浏览器数据库。
值得注意的是:Chrome不像许多其他浏览器一样,它支持多个渲染引擎实例,也就是说,每个Tab分配了各自的渲染引擎实例,每个Tab就是一个独立的进程。
本书将详细讲解以上每个组件,每个组件有一章节的内容。
组件间的通信
Firefox和Chrome都有自己的通讯机制,本书后面将用专门的章节讲解。
如今的浏览器
现今主要的5大类浏览器-Internet Explorer, Firefox, Safari, Chrome and Opera。根据浏览器使用情况(如图)
可看出现今开源的浏览器(Firefox, Safari, Chrome)使用占市场大部分,本书也将结合这些开源的浏览器进行讲解。
关于主要浏览器内核介绍
Internet Explorer:内核是Trident,是微软开发的一种排版引擎
chrome:内核是WebKit,WebKit内核代表作品Safari、Chromewebkit 是一个开源项目,包含了来自KDE项目和苹果公司的一些组件,主要用于Mac OS系统
Firefox:内核是Gecko,Gecko内核代表作品Mozilla FirefoxGecko是一套开放源代码的、以C++编写的网页排版引擎。Gecko是最流行的排版引擎之一,仅次于Trident
Opera:内核是Presto,Presto内核代表作品OperaPresto是由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。它取代了旧版Opera 4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版
更多关于浏览器内核及发展可查看http://web.jobbole.com/84826/;
浏览器的主要作用
浏览器的主要作用是在浏览器窗口中呈现你向服务器请求的资源,资源的格式通常是HTML也有其他的如PDF,图片等,资源的定位使用URL(统一资源定位器),更多内容见网络章节。
浏览器将特定语法规则的HTML和CSS翻译并显示,相应的规则说明书由一个网络标准制定的非赢利组织W3C(W3C是World Wide Web Consortium(万维网联盟)的缩写)来制定,目前的HTML最新标准版本是4,版本5仍在完善中;CSS最新版本是3。以前,不同浏览器有自己的特殊部分并发展自己的版本,这样给web开发者造成严重的开发问题,程序员要花大部分时间去考略兼容性。如今,大多数浏览器都已有许多相同的用户接口,方便了用户的使用,这些相同的接口有:
1.地址栏,方便输入URL;
2.前进后退按钮;
3.书签选项;
4.刷新和暂停加载当前文档的按钮;
5.方便访问主页的主页键;
说来也奇怪,浏览器的这些用户使用接口不是任何规格说明书规定的,而是长期的开发经验形成的一个好的开发实例以及浏览器开发中的不断模仿的结果。HTML5不必定义浏览器的必须具有的UI接口,但是列出一些规范的接口,有地址栏,状态栏以及工具栏,也有一些特殊的浏览器接口,如Firefox的下载管理器(downloads manager),更多内容参照用户接口章节。
浏览器的层次结构High Level Structure
浏览器主要由以下几部分组成:
1.用户使用接口-包括地址栏,前后退导航条,书签菜单等,除了加载你请求的页面显示的部分都是用户使用接口;
2.浏览器引擎-查询和操作渲染引擎;
3.渲染引擎-请求内容的渲染,比如:如果请求的内容是HTML,它将解析HTML和CSS并将解析的内容显示到浏览器窗口中;
4.网络-用于网络的请求,比如HTTP请求,它具有跨平台性,底层的实现不依赖具体的平台;
5.UI后端-用来绘制一些基本的部件,如组合框和窗口。它提供一般的接口,这些接口不具跨平台性,它的实现依赖操作系统提供的用户接口;
6.javascript解释器-用于解释和执行javascript代码;
7.数据存储-这是一个持久层,浏览器需要存储许多数据到磁盘上,例如,cookies。新的HTML(HTML5)定义了web数据库,它是一个完整的浏览器数据库。
值得注意的是:Chrome不像许多其他浏览器一样,它支持多个渲染引擎实例,也就是说,每个Tab分配了各自的渲染引擎实例,每个Tab就是一个独立的进程。
本书将详细讲解以上每个组件,每个组件有一章节的内容。
组件间的通信
Firefox和Chrome都有自己的通讯机制,本书后面将用专门的章节讲解。
相关文章推荐
- Android Manifest 用法
- Android学习笔记(二九):嵌入浏览器
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 小白观察:微软释放出其基于 Chromium 的 Edge 浏览器
- 浏览器 cookie 限制
- 玩转浏览器IE7的5个顶级使用技巧
- 字符集导致的浏览器跨站脚本攻击分析
- 更改IE浏览器的图标
- 如何创建ajax对象并兼容多个浏览器
- css ie6 ie7 ff的CSS hack使用技巧
- CSS 浏览器的等宽空格问题解决
- 区分IE6,IE7,firefox的CSS hack
- PHP检测用户是否关闭浏览器的方法
- PHP限制页面只能在微信自带浏览器访问的代码
- asp.net实现获取客户端详细信息
- ASP.NET实现推送文件到浏览器的方法
- 多种浏览器清除缓存的方法小结
- Dom与浏览器兼容性说明
- firefox(火狐)和ie浏览器禁止右键和禁止复制的代码