网络
用来完成网络调用,如http请求。
Native UI
用来绘制类似组合选择框及对话框等基本组件,具有不特定于某个平台的通用接口,底层使用操作系统的用户接口。
数据存储
属于持久层,浏览器需要在硬盘中保存类似cookie的各种数据。
平常大家讨论最热闹的就是浏览器内核,因为它关乎到我们前端工程师们所设计的界面是否如我们心中的模样展示在各个浏览器中。
虽然现在我们知道的浏览器有很多,除了上篇文章介绍的5大主浏览器,还有许多国产浏览器,例如360,遨游,世界之窗,UC,搜搜……,虽然浏览器厂家很多,但是这些浏览器会各自选择适合自己的开源内核。
我知道的浏览器内核:
Trident
是Windows搭载的网页浏览器即IE的内核。
1997年在IE4中使用。
1993年,NCSA将Mosaic的商业运营权转售给了Spyglass公司。
最早的IE1(1994年)版本号为4.40.308,因为当时微软还没有买下Spyglass Mosaic的源码,到了IE2和IE3,微软同时注明了版本2(4.40.516)和版本3(4.70.1158),表明IE即将成为微软专属软件。
直到IE4成为微软专属软件。
它采用的排版引擎(俗称内核)为Trident。
IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0)
实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现。
此外,为了方便也有很多人直接简称其为IE内核。
猎豹安全浏览器(1.0-4.2版本为Trident+Webkit,4.3版本为Trident+Blink)
360安全浏览器(1.0-5.0为Trident,6.0为Trident+Webkit,7.0为Trident+Blink)
360极速浏览器(7.5之前为Trident+Webkit,7.5为Trident+Blink)
傲游浏览器(傲游1.x、2.x为IE内核,3.x为IE与Webkit双核)
百度浏览器(早期版本)
世界之窗浏览器[2] (最初为IE内核,2013年采用Chrome+IE内核)
2345浏览器、腾讯T T、淘宝浏览器
搜狗高速浏览器(1.x为Trident,2.0及以后版本为Trident+Webkit)
阿云浏览器(早期版本)、瑞星安全浏览器
闪游浏览器、海豚浏览器(iPhone/iPad/Android)
UC浏览器(Blink内核+Trident内核)
其中一个内核是Trident,然后再增加一个其他内核。
国内的厂商一般把其他内核叫做“高速浏览模式”,而Trident则是“兼容浏览模式”
Gecko
是Netscape6开始采用的内核,后来的Mozilla FireFox也采用了该内核,Gecko的特点是代码完全公开,是个开源内核,因此受到许多人的青睐。
事实上,Gecko引擎的由来跟IE不无关系
前面说过IE没有使用W3C的标准,这导致了微软内部一些开发人员的不满;网景解散后,他们与当时已经停止更新了的Netscape的一些员工一起创办了Mozilla。
以当时的Mosaic内核为基础重新编写内核,于是开发出了Gecko。
补充:JavaScript引擎是SpiderMonkey。
结果,网景6.0(trident 1.0)在2000年11月才被正式发布。
这二者均是在Mosaic内核的基础上重新编写内核。
KHT ML及KJS
khtml为排版引擎即渲染引擎,kjs为js引擎。
均是由KDE研发。
是自由软件,符合GPL(由他为基础开发的软件也为开源软件)。
Webkit
包括webcore排版引擎与JavaScriptCore解析引擎,均是苹果从KDE的KHT ML及KJS引擎衍生而来。
是苹果公司自己的内核,也是Safari浏览器使用的内核,但是符合GPL条款,所以webkit为开源的,但是Safari浏览器为部分开源,自己公司的某些接口未对外开源。
在Chrome 28
之前,google使用webkit中webcore与自己的javascript V8引擎。
那时也统称为webkit引擎。
Blink。