浏览器最核心的部分是“Rendering Engine”,即“渲染引擎”,我们一般叫做浏览器内核。它主要的功能是解释网页中的语法并渲染网页。所以渲染引擎决定了浏览器如何显示网页内容以及页面的格式信息。不同的浏览器内核对网页语法的解释不尽相同,这就导致了不同浏览器渲染出的网页可能有一些差异。
比较出名的浏览器内核有以下几种:KHTML、Trident、Gecko、Presto、Webkit、Blink。
Trident内核就是我们所熟知的IE浏览器的内核,该内核在IE4中首次采用,沿用到IE11,俗称“IE内核”。一直到Windows XP时期,由于Windows的市场占有率非常高导致IE多年一家独大,微软长时间没有更新Trident内核产生了不好的后果:一是Trident内核几乎与W3C的标准脱节;二是Trident大量的Bug没有得到及时解决带来的安全问题等。很多用户开始转投其他浏览器,Firefox和Opera就是在这个时候兴起的。
另外,很多国产浏览器都是“双核浏览器”,其中一个核心是Trident,另一个常见的是Webkit。比如遨游浏览器、360安全浏览器等。
Gecko内核是Firefox采用的内核,开始于Netscape6。Gecko的特点是代码完全公开,可开发程度很高。Gecko的出现和IE也不无关系,当年IE与W3C标准严重脱节导致内部一些开发人员不满,他们与当时已经停止更新的Netscape的一些员工创办了Mozilla,以当时的Mosaic内核为基础重新编写了内核,于是就有了Gecko。
Gecko内核的浏览器仍然是Firefox的用户最多,多以有时候也会被称为Firefox内核,Gecko内核也是一个跨平台的内核。
Presto内核是Opera之前使用过的内核,Opera12.17以及更早的版本曾经采用过的内核,现在已经停止开发并废弃。该内核在2003年的Opera7中首次使用,Presto的特点是渲染速度的优化达到了极致,但代价是牺牲了网页的兼容性。
Presto是一个动态内核,在脚本处理上Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行javascript的时候有着最快的速度,根据在同等条件下的测试,Presto内核执行同等Javascript所需的时间仅有Trident和Gecko内核的三分之一(也有人测试说Presto渲染部分快部分慢,总体和其他内核差不多)。可惜Presto是商业引擎,很大程度上限制了内核的发展。现在Opera改用Google Chrome相同的Blink内核。
Webkit内核是苹果公司自己的内核,也是苹果Safari浏览器使用的内核。Webkit引擎包含WebCore排版引擎和JavascriptCore解析引擎,均从KDE的KHTML引擎衍生而来,基于GPL开源。Google Chrome使用了Webkit内核,在脚本解析上Chrome使用了自家研发的V8引擎。
现在许多手机浏览器使用的都是Webkit内核,苹果自带Safari,Android的默认浏览器等。
Blink是由Google和Opera Software开发的浏览器排版引擎,于2013年4月公布了这一消息。该渲染引擎是开源引擎Webkit中Webcore组件的一个分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex浏览器中使用。
而在Google作出此举之际,Mozilla与Samsung也达成合作开发协议开发下一代浏览器渲染引擎Servo。
KHTML是网页排版引擎之一,由KDE开发。KHTML拥有速度快捷的优点,但对错误语法的容忍度则比Mozilla产品所使用的Gecko引擎小。苹果电脑于2002年采纳了KHTML,作为开发Safari浏览器之用,并发布所修改的最新及过去版本源代码。后来发表了开放源代码的WebCore及WebKit引擎,它们均是KHTML的衍生产品,在开发网站列出引擎改变内容,并会传回至KDE计划。