浏览器技术介绍及其未来的发展和展望

2021-09-10 01:43邵慧华
科技研究 2021年16期

邵慧华

摘要:随着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.