time : 2019-06-24 09:00 作者:凡亿pcb
IE是最早的浏览器?这四款开源浏览器引擎让你读懂浏览器进化史
浏览器是什么?20年前,网吧的老板会告诉你,想要上网冲浪,必须使用浏览器打开网页。那个时候,windows98系统内置的IE4.0是上网的标配。虽然已经申请了OICQ,却还是喜欢抛在网页聊天室中,跟天南海北的网友谈天侃地。
20年前的1998年,感觉时间很久远了吧。但微软的IE浏览器却不是最早的浏览器。科技界普遍认为,1991年正式发布的WorldWideWeb是全球最早的一款浏览器,也就是后来的Nexus。这款浏览器虽然还无法支持图片,但在当年一度很流行。
1992年,赫尔辛基科技大学的4个芬兰学生开发了Erwise,这是世界上第一个图形网页浏览器,主要针对在Unix上运行 X Windows的需要。
93年,美国NCSA组织的一个团队,开发了Mosaic浏览器,升华了Erwise的图形化,并将图形化浏览器推向了万维网的主流。
94年,Mosaic团队中心人物马克·安德森成立网景通讯公司,开发了Mozilla,后来更名Netscape Navigator,也就是大家所熟知的网景浏览器。
网景公司的鼎盛时期,其市场占有率最高达到过90%。后来伴随着Java等技术标准的提出,网景等互联网公司的崛起,让以系统开发为主的微软感受到了威胁。于是,微软找到网景,提出了合作,但被网景拒绝。
微软勃然大怒,在95年投入20亿美元,通过购买(包括Mosaic的授权)、兼并和开发等多种手段,迅速推出了浏览器IE2.0。微软不但将IE免费,还将其并捆绑于Windows 95中一起销售,迅速抢占份额,导致网景一蹶不振。网景在98年11月,被美国在线AOL收购,网景浏览器基本退出历史舞台。
98年以后,IE浏览器一统江湖。伴随着国内网吧行业的兴起,影响了大批中国早期的上网用户。
在此后这些年,国外有很多的优秀浏览器的诞生,譬如Opera与谷歌的Chrome。而在中国,则有更多的浏览器诞生,譬如360浏览器、猎豹浏览器、傲游、世界之窗、腾讯TT等等,到最后几乎每个互联网公司都有自己的浏览器。
今年2月份的数据,Chrome浏览器的全球市场份额为已经超过67.49%,名列第一;Chrome在国内的排名同为TOP1,市场份额为45.74%。下图,是来自百度统计近6个月的浏览器中国市场份额数据。
为什么国内会出现这么多浏览器?原因很简单,因为浏览器引擎(内核)都是开源的。各家公司只要在免费内核基础上进行开发,成本是很低的。
一款浏览器,其核心的部分是“Rendering Engine”,也就是“渲染引擎”,一般将之称为“浏览器内核”。主要作用,是帮助浏览器来渲染网页的内容,将页面内容和排版代码转换为用户所见的视图。
浏览器内核又可分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。
渲染引擎的工作流程,大致如下:
1、HTML解析器解析DOMM树(解析为DOM树上个节点,同时解析CSS样式);
2、渲染树结构(具有一定的视觉效果,并按照一定顺序排列在屏幕上);
3、布局渲染树(为每个节点分配固定坐标);
4、绘制DOM树(渲染引擎会遍历所有的节点,由UI后端绘制)
下面,是Webkit渲染引擎工作流程流程图。
浏览器内核很多,加上几乎没人在用的非商业免费内核,目前应该有十款以上甚至更多。但通常,大家能看到的这些浏览器,其内核大概不会超过四种。也就是说,现在各家的浏览器都是基于国外开源浏览器引擎开发的。那么,是哪四种开源浏览器引擎呢?如下:
IE浏览器用的是Trident内核,又称IE内核。微软在1994年开始使用它,是在Mosaic代码的基础上修改而来的,一直沿用至今IE8。在Window10 发布后,IE 将其内置浏览器命名为 Edge,Edge 采用了新内核 EdgeHTML。
Trident是一款开放的内核,其接口内核设计相当成熟,可以在其基础上做很多开发。因此,这些年出现了很多采用IE内核而非IE的浏览器,如Maxthon、The World 、TT、GreenBrowser、AvantBrowser等。基本上,互联网公司所所开发的自家浏览器,都是基于Trident内核。
Gecko是Netscape6 最先采用的内核,后来Mozilla FireFox(火狐浏览器) 也采用了该内核。Gecko代码完全公开,可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为开源,所以基于Gecko 开发的浏览器也很多,同时 Gecko 内核的市场占有率也正在迅速提高。
使用Gecko内核的浏览器也有不少,如Mozilla Firefox、Mozilla SeaMonkey、waterfox(Firefox的64位开源版)、Iceweasel、Epiphany(早期版本)、Flock(早期版本)、K-Meleon等。
Presto是挪威产浏览器Opera(欧朋浏览器)的之前采用的内核,最新的opera浏览器已经加入了谷歌阵营。Presto内核是目前公认网页浏览速度最快的浏览器内核,该款引擎的特点是渲染速度的优化达到了极致,然而代价是牺牲了网页的兼容性。目前,基于Opera内核开发的浏览器,主要应用在手机平台,譬如Opera mini。
为了减少研发成本,Opera 在 2013跟随 Chrome 使用 WebKit 分支的 Chromium 作为核心引擎。在Chrome 于 2013 年推出 Blink 引擎后,Opera 也开始使用 Blink 作为浏览器核心引擎。
2003 年1月7日,苹果发布了Safari测试版。Safari使用KDE(Linux桌面系统)的 KHTML 作为浏览器的内核,这款内核的名称是WebKit。WebKit也是一个开源浏览器引擎,拥有清晰的源码结构、极快的渲染速度,包含的 WebCore 排版引擎和 JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来。
正是因为KHTML 清晰的源码结构和极快的渲染速度,2008 年谷歌发布 chrome 浏览器所采用的 chromium 内核,也用了 Webkit。所以,webkit并非源自chrome,而是确确实实的苹果原创。采用Webkit内核的浏览器很多,诸如Safari、Google Chrome、傲游3,、猎豹浏览器、百度浏览器、opera等,都是基于 Webkit 开发。