首先,浏览器是什么东西?
浏览器最重要的组成是内核,这是高科技就和windows内核一样,目前中国的企业是做不出来的。因此,360浏览器,搜狗等用的都是国外的内核。
内核的工作主要就是解析页面上的html和css等。有时候还包括js内核,负责解析js,有时候是独立出来叫js解析器。内核都会包含一个debug工具,因此可以从浏览器的debug工具来判断使用的是哪个内核。
现在大部分内核的代码都是开源的,因此拿个内核再加上一些用户喜闻乐见的功能就可以变身一个新的浏览器了。
那么现在主要有哪几种内核?
Trident(IE内核),又称为MSHTML
由于windows操作系统的流行,加上系统里绑定了IE浏览器,导致Trident市场份额很大。
IE8之前的JavaScript引擎是Jscript,IE9开始用Chakra,这两个版本区别很大,Chakra无论是速度和标准化方面都很出色。
Gecko
Gecko引擎的由来跟IE不无关系,前面说过IE没有使用W3C的标准,这导致了微软内部一些开发人员的不满;他们与当时已经停止更新了的 Netscape的一些员工一起创办了Mozilla,以当时的Mosaic内核为基础重新编写内核,于是开发出了Gecko,开源。
JavaScript引擎是SpiderMonkey、TraceMonkey、JaegerMonkey。
SpiderMonkey应用在Mozilla Firefox 1.0-3.0,TraceMonkey应用在Mozilla Firefox 3.5-3.6版本,JaegerMonkey应用在Mozilla Firefox 4.0及后续的版本。
Gecko主要用在Firefox,因此也称Firefox内核。
Webkit
前身是KDE的KHTML和KJS,当时苹果觉得需要开发自己的浏览器,所以在比较了 Netscape(现在的 Firefox)的 Gecko 引擎 和 KHTML 引擎后,选择了后者,因为 KHTML 拥有更清晰的架构,而且比 Gecko 更小巧。
现在Webkit由苹果、Chrome以及第三方开发者共同开发,主导是苹果。Chrome自己有个项目是Chromium,开源的Chrome,多进程架构,国内的浏览器用的Chrome内核就是这个。
那么各浏览器的情况,总结一下。
Firefox Gecko引擎 JaegerMonkey引擎
Chrome Webkit引擎(Google现在在开发自己的引擎Blink) V8引擎(Google自己开发的JS引擎)
Safari Webkit引擎 Nitro引擎
IE9 Trident引擎 Chakra引擎
IE8之前 Trident引擎 Jscript引擎
国内主流的“双核”浏览器基本都是Trident和WebKit这个架构,例如搜狗高速浏览器、傲游浏览器、360安全浏览器。而这个Webkit用的都是Chromium。
不同的浏览器,器user-Agent也不同。
javascript:document.write(navigator.userAgent);document.close();
可以将上面的代码拷到浏览器地址栏里查看userAgent。