前端学习之路:五大浏览器内核是什么?能做什么?
客户端主流浏览器
现在国内常见的浏览器有:IE、Firefox、QQ浏览器、Safari、Opera、Google Chrome、百度浏览器、搜狗浏览器、猎豹浏览器、360浏览器、UC浏览器、遨游浏览器、世界之窗浏览器等。
但目前最为主流浏览器有五大款,分别是IE(Edge)、Firefox、Google Chrome、Safari、Opera。
五大浏览器分别是Google Chrome、Safari、Firefox、Edge(Internet Explorer) 、Opera浏览器,采用的都是单内核,而随着浏览器的发展现在也出现了双内核(例如QQ/360)。
- Google Chrome :Google Chrome是一款由Google公司开发的一款设计简单、高效的Web浏览工具,其基于开源引擎WebKit中的分支Blink而生的浏览器,
Blink 内核以及Chromium
是Google公司自主研发的内核模式,包含V8 Javascript虚拟机,这个多线程的虚拟机可以加速Javascript的执行。目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。 - Safari :Safari 是一款由苹果公司开发的网页浏览器,是各类苹果设备(如Mac、iPhone、iPad、iPod Touch)的默认浏览器,Safari使用自家开发 WebKit 浏览器引擎,
WebKit 内核
是苹果自主研发的内核模式,包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来。 - Firefox : Firefox 浏览器使Mozilla公司旗下浏览器,也是刚才提到的网景公司后来的浏览器。网景被收购后,网景人员创办了Mozilla基金会,这是一个非盈利组织,他们在2004年推出自己的浏览器Firefox其采用作为内核,
Gecko 内核
是Mozilla公司自主研发的内核模式. - Edge :Microsoft Edge是一款快速而安全的浏览器,其是基于谷歌开发的
Chromium 内核
,即微软的壳、Chromium 的心, 这次转变旨在解决 Edge 一直以来都难以解决的兼容性问题(在 EdgeHTML 下不少传统网页都无法正常显示)并融入现有的 Chromium 生态,所以 Google Chrome 中使用的浏览器插件通常也可以在Edge使用。- Internet Explorer : 已经是过去式了,此处不再详细提及,曾经占用量最大的浏览器,现在已被 Microsoft 推出的 Edge 所替代,其采用的 Trident 内核。
- Opera :它是挪威Opera Software ASA公司旗下的浏览器。1995年,opera公司发布第一版Opera浏览器,使用自己研发的Presto内核。当时opera公司的开发团队不断完善Presto内核,使Opera浏览器一度成为顶级浏览器。直到2016年奇虎360和昆仑万维收购了Oprea浏览器,从此也丢弃了强大的Presto内核,改用当时Google开源的webkit内核,后来Opera浏览器跟随Google将浏览器内核改为Blink内核,自此Presto内核也淡出了互联网市场。
浏览器内核
五大内核分别是:Trident(也称IE内核)、Presto、Gecko、Webkit、Blink/Chromium (基于Webkit)。
- Trident (['traɪd(ə)nt]) (IE内核):该内核程序在 1997 年的 IE4 中首次被采用,是微软在 Mosaic("马赛克",这是人类历史上第一个浏览器,从此网页可以在图形界面的窗口浏览) 代码的基础之上修改而来的,并沿用到 IE11,也被普遍称作 "IE内核"。
- Presto (['prestəʊ]):它是挪威产浏览器 opera 的 "前任" 内核,为何说是 "前任",因为最新的 opera 浏览器早已将之抛弃从而投入到了谷歌大本营。pera 的一个里程碑作品是 Opera7.0,因为它使用了 Opera Software 自主开发的 Presto 渲染引擎,取代了旧版 Opera 4 至 6 版本使用的 Elektra 排版引擎。该款引擎的特点就是渲染速度的优化达到了极致,然而代价是牺牲了网页的兼容性。
Presto 加入了动态功能,例如网页或其部分可随着 DOM 及 Script 语法的事件而重新排版。Presto 在推出后不断有更新版本推出,使不少错误得以修正,以及阅读 Javascript 效能得以最佳化,并成为当时速度最快的引擎,然而为了减少研发成本,Opera 在 2013 年 2 月宣布放弃 Presto,转而跟随 Chrome 使用 WebKit 分支的 Chromium 引擎作为自家浏览器核心引擎,至此Presto 内核的 Opera 浏览器版本永远的停留在了 12.17 - Gecko (['gekəʊ]) (Firefox 内核):Netscape6 开始采用的内核,后来的 Mozilla FireFox(火狐浏览器) 也采用了该内核,Gecko 的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到许多人的青睐,Gecko 内核的浏览器也很多,这也是 Gecko 内核虽然年轻但市场占有率能够迅速提高的重要原因。
- Webkit :实际上是由苹果公司开发给 Safari 浏览器使用的内核。现在很多人错误地把 webkit 叫做 chrome内核(即使 chrome内核已经是 blink 、Chromeium了),WebKit 前身是 KDE 小组的 KHTML 引擎,可以说 WebKit 是 KHTML 的一个开源的分支。当年苹果在比较了 Gecko 和 KHTML 后,选择了后者来做引擎开发,是因为 KHTML 拥有清晰的源码结构和极快的渲染速度,所以Webkit内核可以说是以硬件盈利为主的苹果公司给软件行业的最大贡献之一。
- PS:Apple 在 Safari 里面使用了自己的 Nitro JavaScript 引擎(只用 WebKit 来渲染 HTML),所以一般说到 Webkit,通常指的就是渲染引擎(而不包括 Javascript 引擎)
- Chromium/Blink :2008 年谷歌公司发布 chrome 浏览器,浏览器使用的内核被命名为 chromium,其 fork 自开源引擎 webkit,却把 WebKit 的代码梳理得可读性提高很多,提高了效率并且带动了浏览器行业的发展,谷歌公司还研发了自己的 Javascript 引擎,V8,极大地提高了 Javascript 的运算速度,然而 2013 年 4 月 3 日,谷歌在 Chromium Blog 上发表 博客,称将与苹果的开源浏览器核心 Webkit 分道扬镳,在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览器之中。
我们所说的浏览器内核是什么?其究竟能干什么?
浏览器最重要或者说核心的部分是“Rendering Engine”
可大概译为“渲染引擎”
,俗称称为“浏览器内核”。负责对网页语法的解释(如[标准通用标记语言]下的一个应用[HTML]、[JavaScript])并渲染(显示)网页。所以,通常所谓的浏览器内核也就是浏览器所采用的[渲染引擎],渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息,不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。
综上所述,浏览器的内核是指支持浏览器运行的最核心的程序,分为两个部分的,一是渲染引擎,另一个是JS引擎
。用户在浏览器请求访问 URI(统一资源标示符)网络资源时,返回的数据由浏览器解释并显示 HTML 文件的方式是在 HTML 和 CSS 规范中指的,这些规范由网络标准化组织 W3C(万维网联盟)进行维护。
此处值得注意的是,并非所有的浏览器都完全遵从W3C规范(只是或多或少),通常还在开发自己独有的扩展程序。

Webkit 用的好好的,为何要投入到一个新的内核中去呢?
Blink 其实是 WebKit 的分支,如同 WebKit 是 KHTML 的分支。Google 的 Chromium 项目此前一直使用 WebKit(WebCore) 作为渲染引擎,但出于某种原因,并没有将其多进程架构移植入Webkit。
后来,由于苹果推出的 WebKit2 与 Chromium 的沙箱设计存在冲突,所以 Chromium 一直停留在 WebKit,并使用移植的方式来实现和主线 WebKit2 的对接。这增加了 Chromium 的复杂性,且在一定程度上影响了 Chromium 的架构移植工作。
基于以上原因,Google 决定从 WebKit 衍生出自己的 Blink 引擎(后由 Google 和 Opera Software 共同研发),将在 WebKit 代码的基础上研发更加快速和简约的渲染引擎,并逐步脱离 WebKit 的影响,创造一个完全独立的 Blink 引擎。这样以来,唯一一条维系 Google 和苹果之间技术关系的纽带就这样被切断了。
总结说明
- 浏览器内核主要指的是浏览器的渲染引擎,2013 年以前,代表有 Trident(IE),Gecko(firefox),Webkit(Safari chrome 等)以及 Presto(opera)。2013 年,谷歌开始研发 blink 引擎,chrome 28 以后开始使用,而 opera 则放弃了自主研发的 Presto 引擎,投入谷歌怀抱,和谷歌一起研发 blink 引擎,国内各种 chrome系的浏览器(360、UC、QQ、2345 等等)也纷纷放弃 webkit,投入 blink 的怀抱。
- 目前移动端浏览器有哪些内核?
描述:移动端的浏览器内核主要说的是系统内置浏览器的内核。
目前移动设备浏览器上常用的内核有 Webkit,Blink(Chromium),Trident,Gecko 等,其中 iPhone 和 iPad 等苹果 iOS 平台主要是 WebKit,Android 4.4 之前的 Android 系统浏览器内核是 WebKit,Android4.4 系统浏览器切换到了Chromium,内核是 Webkit 的分支 Blink,Windows Phone 8 系统浏览器内核是 Trident。 - 作为前端开发学习,熟悉浏览器内核是非常有必要的,不同内核的解析不同使网页渲染效果更具多样化,下面总结一下各常用浏览器所使用的内核。