邵慧华
摘要:随着HTML5技术的发展和应用,原生应用和web应用的使用体验逐渐接近,而web应用在跨平台,易升级等方面的优势却是原生应用无法企及的。在可预期的未来,web应用将逐渐取代原生应用,浏览器将部分替代操作系统。
关键词:浏览器技术;渲染引擎;blink内核
一、引言
浏览器是访问互联网的主要入口,是我们日常生活中必不可少的上网工具,历来都是各大互联网公司的必争之地,微软,谷歌,苹果等都有自己研发的浏览器。本文介绍了浏览器的发展历史和现状,技术原理及其发展趋势和展望。
二、浏览器的历史和现状
(一)浏览器的发展简史
1、WorldWideWeb发布
1991年,世界上第一个浏览器WorldWideWeb由Web 之父Tim Berners-Lee 设计,后改名为Nexus。
2、Mosaic发布
1993年,伊利诺伊大学厄巴纳-香槟分校的NCSA组织发布Mosaic。
3、Netscape Navigator发布
1994年,Marc Andreessen 带领 Mosaic 的程序员成立了Netscape 公司,并发布了第一款商业浏览器 Netscape Navigator。
4、IE发布
1995年,微软针对 Netscape 发布了他们自己的浏览器IE,第一场浏览器之战爆发。
5、Opera发布
1996年,挪威Telenor公司,推出了 Opera,并在两年后进军移动市场,推出 Opera 的移动版。
6、Firefox发布
1998年,Netscape成立了Mozilla 基金会组织,并开源其浏览器代码,并于2002年发布Firefox浏览器。
7、Safari发布
2003年,苹果发布Safari浏览器,其内核为基于KHTML开发的webkit。
8、Chrome发布
2008年,谷歌发布Chrome浏览器,其内核为webkit;2013年,谷歌将其内核改变为基于webkit研发的blink内核。
9、Microsoft Edge发布
2015年,微软发布Microsoft Edge浏览器,使用内核为EdgeHTML,2020年,内核更改为谷歌的blink。
(二)主流浏览器介绍
主流浏览器是有一定市场份额且有自己独立研发内核的浏览器,也叫原生浏览器,当前国内的浏览器一般都是基于国外的浏览器内核进行研发的产品。当前主流浏览器总大概有以下几种:
1、IE浏览器
IE瀏览器是微软公司开发的,内核为Trident。1995年,微软通过把IE浏览器捆绑到windows操作系统中提供给用户免费使用的方式来推广,很快,IE浏览器变占据了主流市场。后来,随着反垄断诉讼,以及IE浏览器的技术和体验上的落后,微软于2015年推出使用新内核EdgeHTML的Edge浏览器,2020年Edge浏览器正式将其内核切换为谷歌的blink。
2、Opera浏览器
Opera浏览器是挪威Opera Software ASA公司制作的支持多页面标签式浏览的网络浏览器,是一款跨平台浏览器,可以在Windows、Mac和Linux三个操作系统平台上运行,其内核一开始为Presto,2013年以后开始使用谷歌研发的blink内核。2016年,Opera浏览器被昆仑万维、奇虎360收购。
3、Firefox浏览器
Firefox浏览器是一个由Mozilla基金会开发的自由及开放源代码的网页浏览器,在2002年发布,使用Gecko内核。
4、Safari浏览器
Safari浏览器是苹果公司于2003年开发的一款浏览器,其内核基于KHTML内核研发的Webkit内核,最新的内核使用Webkit2。
5、Chrome浏览器
Chrome浏览器是谷歌公司于2008年发布的一款浏览器,其内核最初为webkit,后来谷歌公司基于webkit上自研了blink内核,于是在2013年其内核更改为blink。
三、浏览器技术介绍
(一)浏览器的功能和构成
浏览器的主要功能是将用户选择的web资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常是HTML,也包括PDF、image及其他格式,用户用URI(Uniform Resource Identifier统一资源标识符)来指定所请求资源的位置。HTML和CSS规范中规定了浏览器解释HTML文档的方式,由W3C组织对这些规范进行维护,W3C是负责制定web标准的组织。
用户接口:包括地址栏、后退/前进按钮、书签目录等,除了用来显示所请求页面的主窗口之外的其他部分
浏览器引擎API:用来查询及操作渲染引擎的接口
渲染引擎:用来显示请求的内容,负责解析html及css,并将解析后的结果显示出来
网络接口:用来完成网络调用,例如http请求,具有平台无关的接口,可以在不同平台上工作
JS引擎:用来解释执行JS代码
UI组件:用来绘制类似组合选择框及对话框等基本组件,具有不特定于某个平台的通用接口,底层使用操作系统的用户接口。
数据存储:属于持久层,浏览器需要在硬盘中保存类似cookie的各种数据
(二)渲染引擎运行原理
渲染引擎的职责就是渲染,即在浏览器窗口中显示所请求的内容。默认情况下,渲染引擎可以显示html、xml文档及图片,它也可以借助插件(一种浏览器扩展)显示其他类型数据,例如使用PDF阅读器插件显示PDF格式等
渲染引擎首先通过网络获得所请求文档的内容,通常以8K分块的方式完成。
渲染引擎开始解析html,并将标签转化为内容树中的dom节点。接着,它解析外部CSS文件及style标签中的样式信息。这些样式信息以及html中的可见性指令将被用来构建另一棵树——render树。
Render树由一些包含有颜色和大小等属性的矩形组成,它们将被按照正确的顺序显示到屏幕上。
Render树构建好了之后,将会执行布局过程,它将确定每个节点在屏幕上的确切坐标。再下一步就是绘制,即遍历render树,并使用UI后端层绘制每个节点。
这个过程是逐步完成的,为了更好的用户体验,渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的html都解析完成之后再去构建和布局render樹。它是解析完一部分内容就显示一部分内容,同时,可能还在通过网络下载其余内容。
四、浏览器技术的发展和展望
(一)Web应用将逐渐取代原生应用
随着HTML5技术的发展和应用,原生应用和web应用的使用体验逐渐接近,而web应用在跨平台,易升级等方面的优势却是原生应用无法企及的。因此在可预期的将来,web应用将逐渐取代原生应用,除了通用类基础软件和要求比较高的游戏外,其它的程序都逐步往浏览器上搬迁。目前这一进程已经开始,未来可能还将加速。
(二)浏览器将部分替代操作系统
原生应用逐渐被web应用取代,更少的软件被安装到操作系统中,也就意味着操作系统重要性的降低。HTML5提供的Web数据存储和离线数据存储功能,更多的接口能让浏览器具有更强的处理本地数据的能力,这就使得浏览器可以部分代替操作系统,浏览器某种程度上将成为通用的平台,用户无需离开浏览器就能完成绝大部分的任务。
(三)blink内核有望一统天下
浏览器内核最终有可能统一,最可能完成一统天下任务的是谷歌研发的blink内核。当前最主要的两个浏览器内核为苹果的webkit和谷歌的blink,除了在苹果终端设备上的浏览器中使用webkit内核外,当前主要的浏览器基本上使用的都是blink浏览器。
参考文献
[1]金成明,张捷,赵永彬,等. 异构操作系统浏览器多核支持技术及改造方法[J]. 电子技术应用,2016(z1):41-45.DOI:10.16157/j.issn.0258-7998.2016.S1.015.
[2]王灏汉. Web浏览器客户端取证技术的探索与应用[J]. 网络安全技术与应用,2020(10):168-172. DOI:10.3969/j.issn. 1009- 6833.2020.10.099.