文章目录
- 1、什么是浏览器内核
- 2、常用浏览器内核
- 3、浏览器内核分类
- 3. 1、Trident
- 3.2、Gecko
- 3.3、Webkit
- 3.4、Chromium
- 3.5、Presto
- 3.6、国内主流浏览器
- 4、五大主流浏览器(诞生顺序)
- 4.1、IE(Internet Explorer)浏览器
- 4.2、Opera浏览器
- 4.3、Safari浏览器:
- 4.4、Firefox浏览器:
- 4.5、Chrome浏览器:
- 5、总结
1、什么是浏览器内核
简单来说,浏览器内核是浏览器的核心,也称“渲染引擎”,用来解释网页语法并渲染到网页上,浏览器内核决定了浏览器该如何显示网页内容以及页面的格式信息。
浏览器内核又可以分成两部分:渲染引擎和JS引擎。
- 渲染引擎:负责获取网页的内容并显示,不同的浏览器内核对网页的解析渲染也不同。
- JS引擎:负责解析 Javascript 语言,执行 javascript 语言来实现网页的动态效果。
起初渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。
浏览器内核(Rendering Engine),是指浏览器最核心的部分,负责对网页语法的解释(如标准通用标记语言下的一个应用HTML、JavaScript)并渲染(显示)网页。
所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。
2、常用浏览器内核
内核的种类很多,常见的浏览器内核可以分这四种:Trident、Gecko、Blink、Webkit。
作为一名前端开发人员,你写的页面在那些浏览器测试过?这些浏览器的内核分别是什么?
下面总结一下各常用浏览器所使用的内核:
- IE: Trident内核,也是俗称的IE内核。
- Chrome: 统称为Chromium内核或Chrome内核,以前是Webkit内核,现在是Blink内核。
- Firefox: Gecko内核,俗称Firefox内核。
- Safari: Webkit内核。
- Opera: 最初是自己的Presto内核,后来是Webkit,现在是Blink内核。
- 360、猎豹: IE+Chrome双内核。
- 搜狗、遨游、QQ浏览器: Trident(兼容模式)+Webkit(高速模式)。
- 百度、世界之窗: IE内核。
- 2345浏览器: 以前是IE内核,现在也是IE+Chrome双内核。
(前五个浏览器是目前五大主流浏览器,而五大浏览器采用的都是单内核)。
3、浏览器内核分类
3. 1、Trident
- IE的内核,也就是国内双核浏览器的内核之一,此内核只能用于Windows平台,且不是开源的。Trident内核一直延续到IE11,IE11的后继者Edge采用了新内核EdgeHTML。
3.2、Gecko
- 开源内核,后来被FF(FireFox)采用,最大优势是跨平台,在Microsoft Windows、Linux、MacOs X等主要操作系统中使用。
3.3、Webkit
-
开源内核,Webkit的鼻祖是Safari,曾经的Chrome用的是Webkit。注意:Webkit其实包括是渲染引擎Webcore(前身是KHTML),以及JS引擎JSCore。
-
Safari浏览器内核:Webkit内核;KHTML->Webkit(WebCore+JSCore)->Webkit2
3.4、Chromium
-
开源内核,chromium fork自Webkit,代码可读性和编译速度得到提升。值得一提是谷歌专门研发了自己的JS引擎——V8,极大地提高了JS的运算速度。
-
Blink内核是由Google和Opera Software开发的浏览器排版引擎,2013年4月发布。现在Chrome内核是Blink。
-
Chromium内核 → Webkit内核 → Blink内核。
3.5、Presto
- Opera Software开发的浏览器排版引擎,它是世界公认最快的渲染速度的引擎,Opera7.0开始使用。13年2月后为了减少研发成本,Opera放弃Presto宣布加入谷歌阵营,采用chromium,之后也紧跟Blink的脚步。
3.6、国内主流浏览器
-
360浏览器、猎豹浏览器内核:IE内核+Chrome双内核。
-
搜狗、遨游、QQ浏览器内核:IE内核(兼容模式)+Webkit(高速模式)。
-
百度浏览器、世界之窗内核:IE内核。
-
2345浏览器内核:好像以前是IE内核,现在也是IE+Chrome双内核了。
-
UC浏览器内核:这个众口不一,UC说是他们自己研发的U3内核,但好像还是基于Webkit和Trident,还有说是基于火狐内核。
4、五大主流浏览器(诞生顺序)
4.1、IE(Internet Explorer)浏览器
-
IE的诞生起源于1994年,当时微软为了对抗几乎占据市场百分之九十份额的网景Netscape Navigator(导航者),准备在windows中开发自己的浏览器,取名为Internet Explorer,意为因特网探险者,好吧,一个导航者一个探险者,从名字起火药味就很重啊(ps 自此也拉开了第一次浏览器大战的帷幕,结果大家都知道了,微软大获全胜,基本以98年网景将自己卖给了AOL公司暂且告终,但是还没结束,因为后来网景换了个身份,也就是Firefox火狐,又进入了大众视野,迸发了一种凤凰涅槃的快感,到今天为止Firefox也成为了五大主流之一,后面我们再说它~话说回来,竞争才能推动技术的发展,第一次浏览器大战以微软和网景为代表,大力推动了浏览器方面技术的发展,各大公司开始着手研发自己的浏览器,有压力才有动力嘛),但是微软着急对抗网景啊,没那么多时间从零开始,于是选择和和Spyglass合作,所以IE其实从早期一款商业性的专利网页浏览器Spyglass Mosaic派生出来,虽然Spyglass Mosaic与NCSA Mosaic(1993年,美国NCS(National Center for Supercomputing Applications)也就是国家超级计算机中心,发布的世界上第一款Web浏览器取名为Mosaic,后来网景大名鼎鼎的Mozilla就来自于这里,意为Mosaic Killer(Mosaic杀手)不过事实上, Mosaic 并不是第一个具有图形界面的网页浏览器,但是, Mosaic 是第一个被人普遍接受的浏览器,它让许多人了解了Internet )甚为相似,但Spyglass Mosaic则相对地较不出名并使用了NCSA Mosaic少量的源代码~~
-
从1996年开始,微软从Spyglass手里拿到了Spyglass Mosaic的源代码和授权。从而使IE逐渐成为微软专属软件。(后来,微软以IE和操作系统捆绑的模式不断扩展其市场份额,使IE成为了浏览器市场的绝对主流~~)从那时开始,IE的呈现引擎就是Trident,这也是大家俗称的IE内核,国内的大多数浏览器都有使用IE内核,或者是IE和Chrome双内核这样的形式来提高性能。
4.2、Opera浏览器
- Opera创始于1995年4月,由挪威Opera Software ASA公司发布,2016年2月确定被奇虎360和昆仑万维收购(题外话Opera浏览器从一开始,就在做自己的东西,无论是内核还是版本号,虽然后来为了市场份额还是弃用了曾让其达到巅峰的Presto,转向了Webkit,现在是Blink,但我还是欣赏这家公司在残酷的浏览器大战中坚持自己并存活下来的顽强精神的,它的起源时间和IE差不多,但是没有微软那样强大的后台也许从它弃用自己内核的那时候起就决定了这个结果吧但是不得不说,它为浏览器的发展贡献了不可或缺的一份力量最后,希望奇虎和万维能将这样一个有骨血的浏览器继续发扬光大吧,虽然~最初的东西已经没有了)。自我感觉,Opera能从第一次浏览器大战两大霸主的交火中勉强存活下来已经是个奇迹了,毕竟后来的三大浏览器都是诞生于第一次浏览器大战之后,但是却没抵得过时间的考验,这真的是个悲伤的故事。
- 前段括弧里面已经交代清楚了,Opera浏览器的内核最初是Presto,前几年宣布使用Google的开源项目Webkit作为自己的内核,没过多久,又跟随Google使用Blink内核。
4.3、Safari浏览器:
- 第二次浏览器大战基本是从苹果公司2003年1月发布其自有浏览器Safari开始的,苹果利用自己独天得厚的手机市场份额,使Safari浏览器的用户数量不断上升。从Safari推出之时起,它的渲染引擎就是Webkit,一提到 webkit,首先想到的便是 chrome,可以说,chrome 将 Webkit内核 深入人心,殊不知,Webkit 的鼻祖其实是 Safari。现在很多人错误地把 webkit 叫做 chrome内核(即使 chrome内核已经是 blink 了),苹果都哭瞎了有木有。Safari 是苹果公司开发的浏览器,使用了KDE(Linux桌面系统)的 KHTML 作为浏览器的内核,Safari 所用浏览器内核的名称是大名鼎鼎的 WebKit。 Safari 在 2003 年 1 月 7 日首度发行测试版,并成为 Mac OS X v10.3 与之后版本的默认浏览器,也成为苹果其它系列产品的指定浏览器(也已支持 Windows 平台)。如上述可知,WebKit 前身是 KDE 小组的 KHTML 引擎,可以说 WebKit 是 KHTML 的一个开源的分支。当年苹果在比较了 Gecko 和 KHTML 后,选择了后者来做引擎开发,是因为 KHTML 拥有清晰的源码结构和极快的渲染速度。Webkit内核可以说是以硬件盈利为主的苹果公司给软件行业的最大贡献之一。随后,2008 年谷歌公司发布 chrome 浏览器,采用的 chromium 内核便 fork 了 Webkit。
4.4、Firefox浏览器:
- 前面提到过,在第一次浏览器中大败的网景公司并没有彻底烟消云散,就是几经曲折(此处省略,有兴趣查阅资料),原网景公司的人员创办了Mozilla基金会,这是一个非盈利组织,正是他们在2004年推出了自己的浏览器Firefox,并且以之前的Mosaic内核为基础,开发了Gecko引擎,这也是火狐自04年发布以来一直使用的渲染引擎后来在2005年,又在基金会的基础上成立了Mozilla公司,其主要任务就是继续开发Firefox。Gecko是一个开源项目,代码完全公开,因此受到很多人的青睐~~对了,从Firefox问世开始,第二次浏览器大战基本算是彻底打响了,第二次浏览器大战与第一次二元鼎力的局面不同,这一次的特点就是百家争鸣,也自此打破了IE浏览器从98年网景被收购后独步浏览器市场的局面。
4.5、Chrome浏览器:
-
2008年,大名鼎鼎的互联网巨头Google公司发布了它的首款浏览器Chrome浏览器。虽然在浏览器方面,Chrome算是年轻的一代了,但是没办法啊,人家是富二代官二代啊,后台太强,而且确实先天能力得天独厚,从文章最初贴的那个浏览器市场份额报告可以看出即便是在国内市场,Chrome浏览器依然占据着半壁江山。前面说的,其实Chrome浏览器的内核名为chromium,也就是现在大家习惯称的chrome内核,而且按照大家的误解,一直认为的chrome内核就是由苹果公司最先选择的算是KHTML引擎的分支-Webkit,这大概是苹果公司至今说不清道不明的伤痛吧~~chromium fork 自开源引擎 webkit,却把 WebKit 的代码梳理得可读性提高很多,所以以前可能需要一天进行编译的代码,现在只要两个小时就能搞定。因此 Chromium 引擎和其它基于 WebKit 的引擎所渲染页面的效果也是有出入的。所以有些地方会把 chromium 引擎和 webkit 区分开来单独介绍,而有的文章把 chromium 归入 webkit 引擎中,都是有一定道理的。(谷歌公司还研发了自己的 Javascript 引擎,V8,极大地提高了 Javascript 的运算速度。)chromium 问世后,带动了国产浏览器行业的发展。一些基于 chromium 的单核,双核浏览器如雨后春笋般拔地而起,例如 搜狗、360、QQ浏览器等等,无一不是套着不同的外壳用着相同的内核。
-
然而 2013 年 4 月 3 日,谷歌在 Chromium Blog 上发表 博客,称将与苹果的开源浏览器核心 Webkit 分道扬镳,在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览器之中。其实Blink引擎就是也就是Webkit的分支,就像Webkit是KHTML的分支一样。Blink引擎现在是谷歌公司与Opera Software共同研发,上面提到过的,Operaqq弃用了自己的Presto内核,加入Google阵营,跟随谷歌一起研发Blink,套上Chromium内核后,用户体验貌似确实大不如前,鼎盛时期的Opera7.0也不复存在~~。
5、总结
浏览器内核主要指的是浏览器的渲染引擎。内核主要有Trident(IE),Gecko(firefox),Webkit(Safari chrome 等)以及 Presto(opera)。在2013年谷歌开始研发 blink 引擎,chrome 28 以后开始使用,而 opera 则放弃了自主研发的 Presto 引擎,投入谷歌怀抱,和谷歌一起研发 blink 引擎。
不同的内核对网页编写语法的解释也有不同,进而导致同一个页面在不同内核的浏览器下显示出来的效果也会有所出入,这也是作为一个前端工程师需要了解不同浏览器所使用的内核和各种兼容性问题。浏览器内核是浏览器的核心,也叫“渲染引擎”,解释html并渲染绘制。浏览器内核决定了浏览器该如何显示网页内容以及页面的格式信息。不同的浏览器内核对网页的语法解释也不同,因此网页开发者需要在不同内核的浏览器中测试网页的渲染效果。