浏览器引擎
注意区分 Web search engine(搜索引擎), JavaScript engine(JS引擎)
什么是浏览器引擎?
A web browser engine (sometimes called layout engine or rendering engine) is a program that renders marked up content (such as HTML, XML, image files, etc.) and formatting information (such as CSS, XSL, etc.).
A layout engine is typical component of web browsers, email clients, e-book readers, on-line help systems or other applications that require the displaying (and editing) of web content.
浏览器引擎,也叫排版引擎、渲染引擎或浏览器内核。
浏览器引擎是一种用来显示浏览器内容的应用。它负责解释并渲染网页,决定了浏览器如何显示网页的内容以及页面的格式信息。
常见引擎
Gecko引擎(Firefox)
Gecko由Mozilla组织(Mozilla基金会前身)以Mosaic内核为基础开发出来的,现在有 Mozilla 基金会维护。
用于Mozilla Firefox 浏览器和 Netscape 6之后的版本。
Trident引擎(IE)
Trident(又称MSHTML)是微软在Mosaic代码的基础之上修改而来的,从1997年的IE4中首次被采用,一直沿用到IE11。
从Windows 95一直到XP初期,借助Windows的东风长期处于垄断地位。后来微软长时间没有进行更新,Firefox和Opera就是这个时候兴起的。
WebKit引擎(Safari)
KDE’s open-source KHTML engine is used in KDE’s Konqueror web browser and was the basis for WebKit, the rendering engine in Apple’s Safari and Google’s Chrome web browsers.
WebKit 是Apple 由 KHTML引擎 fork 出来,用于 Safari 浏览器的 Web 引擎
Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来。
Webkit引擎是目前公认的最快的网页浏览方式,从技术统计看,WebKit的执行效率(网页显示速度)是IE的几十倍甚至上百倍。
2005年Apple将Webkit开源。
2008年9月Google发布了第一个版本的 Chrome开始,直到 Chrome 28 之前也一直使用 WebKit 内核。
2010年4月8日,发布WebKit2。Webkit2的目标是将元件抽象化,并提供更干净的网页渲染。
Blink引擎(Chrome & Opera)
Current versions of Chromium/Chrome (except iOS version) and Opera are based on Blink, a fork of WebKit.
Blink是一个由Google和Opera 基于Webkit开发的浏览器引擎,是开源引擎WebKit中WebCore组件的一个分支,
Google在2013年4月对外公布:将与苹果的开源浏览器核心Webkit分道扬镳,在未来的 Google Chrome/Chromium 中使用 Blink引擎。
Opera也表示将会跟随谷歌采用其Blink内核,同时参与了Blink的开发。
在Chrome(28+)、Opera(15+)中使用。
EdgeHTML引擎( Microsoft Edge)
EdgeHTML is a proprietary layout engine developed by Microsoft for the Microsoft Edge web browser. It is a fork of Trident that has removed all legacy code of older versions of Internet Explorer and rewritten the majority of its source code with web standards and interoperability with other modern browsers in mind. The rendering engine was first released as an experimental option in Internet Explorer 11 as part of the Windows 10 Technical Preview build 9879.
EdgeHTML是微软为 Microsoft Edge 开发的排版引擎。它是 Trident的分支,废弃了IE中原来的代码,对源码进行了重写。
背景知识
1990年,万维网之父蒂姆·伯纳斯·李(Tim Berners-Lee)开发出了第一个网页浏览器Nexus。
1993年NCSA 发布了”Mosaic”浏览器。随后NCSA将Mosaic的商业运营权转售给了Spyglass公司。
1994年Mosaic项目的负责人Marc Andreesen辞职建立了网景(Netscape),同年发布了网景导航者(Netscape Navigator)。
1995年微软担心网景的威胁,在向Spyglass 公司取得Mosaic的授权后,开发了IE 1.0。
在这期间,网景公司的Netscape Navigator与微软公司的Internet Explorer之间进行了激烈的竞争,后来被称为“浏览器大战”。
1998年1月,在竞争中失利的网景,为了挽回市场,免费并开源,成立了非正式组织Mozilla。Mozilla计划启动,开始研发新的排版引擎(Gecko)。
1998年11月网景被AOL以42亿美元收购。
2001年11月14日,AOL跳过 Netscape 5 ,发布了采用Gecko引擎的新版本 Netscape 6。
2002年Mozilia组织开发出了功能和稳定性更出色的 Mozilia Application Suit 1.0版(基于Gecko引擎)。同年衍生出 Phoenix,后改名为 Firebird,2004年最终改称为Mozilia Firefox。
2003年7月15日AOL解散网景公司,大部分员工被解雇。而Mozilla Foundation亦在当天成立。
2007年12月,AOL宣布停止Netscape浏览器的开发,并于2008年3月1日停止所有的技术支持。Netscape正式退出历史舞台。
2015年3月,微软确认放弃IE,由Microsoft Edge取代,作为Windows 10的默认浏览器。2015年10月15日,微软宣布在2016年1月12日停止为IE提供技术支持。IE正式退出历史舞台。
双核浏览器
一般网页用WebKit/Blink(高速模式),网银等用Trident(兼容模式)
WebKit/Blink速度快,但无法兼容显示所有网页。
Trident 虽然速度慢,但有着很好的兼容性。很多网银和支付系统只支持IE的Trident内核,其他内核浏览器无法进行正常业务。
- QQ浏览器
- 360极速浏览器(无缝切换,基于Chromium开源项目)
- 7.5之前为Trident+Webkit,7.5为Trident+Blink
- 360安全浏览器(安全双核)
- 1.0-5.0为Trident,
- 6.0为Trident+Webkit,
- 7.0为Trident+Blink
- 搜狗高速浏览器
- 1.x为Trident,
- 2.0及以后版本为Trident+Webkit
- 猎豹安全浏览器(安全双核)
- 1.0-4.2版本为Trident+Webkit,
- 4.3及以后版本为Trident+Blink
- 百度浏览器
- 遨游Maxthon
- 1.x、2.x为IE内核,
- 3.x为IE与Webkit双核
- UC浏览器
- Trident内核+Blink内核