浏览器内核的解析和对比
要搞清楚浏览器内核是什么,首先应该先搞清楚浏览器的 构成。简单来说浏览器可以分为两部分,shell+内核。其中shell的种类相对比较多,内核则比较少。Shell是指浏览器的外壳:例如菜单,工具栏 等。主要是提供给用户界面操作,参数设置等等。它是调用内核来实现各种功能的。内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块。也有一些 浏览器并不区分外壳和内核。从Mozilla将Gecko独立出来后,才有了外壳和内核的明确划分。目前主流的浏览器有IE6、IE8、Mozilla、FireFox、Opera、Safari、Chrome、Netscape等。
什么是浏览器内核
浏览器内核又可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至 显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内 容的应用程序都需要内核。(参见维基百科)JS引擎则是解析Javascript语言,执行javascript语言来实现网页的动态效果。最开始渲染引 擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。有一个网页标准计划小组制作了一个ACID来测试引擎的兼容性和性 能。内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有10多种,但是常见的浏览器内核可以分这四种:Trident、Gecko、 Presto、Webkit。
Trident又称MSHTML,是微软开发的渲染引 擎(包含了Javascript引擎JScript),他已经深入了Windows操作系统的骨髓,例如Windows Media Play,Windows Explorer,Outlook Express等都使用了。目前很多浏览器都使用这个引擎,例如IE,Maxthon(最新版已经不使用)等。
Gecko是C++开发的,Open Source的渲染引擎,包括了SpiderMonkey(Rhino)。主要的使用者有Firefox。
Webkit是苹果公司基于KHTML开发的。他包括Webcore和JavaScriptCore(SquirrelFish,V8)两个引擎。主要的使用者有Safari,Chrome。
Presto由Opera Software公司开始的,用于Opera的渲染引擎。Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了Presto的内核。
主流浏览器所使用的内核分类
Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等
Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等
Presto内核:Opera7及以上
Webkit内核:Safari,Chrome等
Engine
|
Creator
|
Software license
|
Leading application
|
Gecko
|
Netscape/Mozilla Foundation
|
MPL/GNU GPL/GNU LGPL tri-license
|
Mozilla Firefox
|
KHTML
|
KDE
|
GNU LGPL
|
Konqueror
|
Presto
|
Opera Software
|
Proprietary
|
Opera
|
Tasman
|
Microsoft
|
Proprietary
|
Microsoft Entourage
|
Trident
|
Microsoft
|
Proprietary
|
Internet Explorer
|
WebKit (Based on KHTML)
|
WebKit Foundation
|
GNU LGPL, BSD-style
|
Safari, Google Chrome
|
JS引擎
JavaScript最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。以它为基础,制定了ECMAScript标 准。他的起源并不是如《Javascript高级程序设计》书中所述,是Brendan Eich自主发明的。(参考aimingoo的考证文章)JavaScript在浏览器的实现中还必须含有DOM和BOM。Web浏览器一般使用公共 API来创建主机对象来负责将DOM对象反射进JavaScript。
|
Trident
|
Gecko
|
WebKit
|
KHTML
|
Presto
|
Name of ECMAScript Engine
|
JScript
|
Spidermonkey
|
JavaScriptCore
|
KJS
|
linear b/futhark
|
ECMAScript Version
|
Edition 3
|
Yes
|
0.6
|
Yes
|
Yes
|
7.0
|
JavaScript 1.5 extensions
|
No
|
0.6
|
Yes
|
Yes
|
7.0
|
JavaScript 1.7 extensions
|
No
|
1.8.1
|
No
|
No
|
No
|
JavaScript 1.8 extensions
|
No
|
1.9
|
No
|
No
|
No
|
浏览器内核实现原理
渲染流程如下所示:
Mozilla架构设计:界面和实现分离。采用标记语言,JavaScript,C++来开发。JSEngine就是指SpideMonkey,Layout就是指Gecko。Mozilla的一个关键部分是XPCOM和NSPR。
Webkit的处理流程:
浏览器内核的优缺点
Trident:这种浏览器内核是IE浏览器用 的内核,因为在早期IE占有大量的市场份额,所以这种内核比较流行,以前有很多网页也是根据这个内核的标准来编写的,但是实际上这个内核对真正的网页标准 支持不是很好,甚至在2005年,与网页标准制定组织(W3C理事会)所制定的标准发生了脱节,同时 Trident 内核本身的BUG比较多,对一些符合W3C标准的网页代码支持不是很好,这在早期的IE版本中比较明显,比如IE5.5以前(包括IE5.5),其实IE6对W3C标准的支持也不是很好,而我们现在很多人都在使用IE6,事实上它也属于一个比较早的版本。
但是由于IE的高市场占有率,微软也很长时间没有更新Trident内核,这导致了二个结果
1,Trident内核和W3C标准脱节。
2,Trident内核的大量Bug等安全问题没有得到解决,加上一些专家学者公开自己认为IE浏览器不安全的观点,使很多用户开始转向其他浏览器,FF,Opera就是这时期兴起的。
Gecko:这是Firefox 和 Flock 所采用内核,这个内核的优点就是功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口,但是代价是也显而易见就是要消耗很多的资源,比如内存。
Presto:Opera 采用的是 Presto内核,Presto内核被称为公认的浏览网页速度最快的内核,这得益于它在开发时的天生优势,在处理JS脚本等脚本语言时,会比其他的内核快3倍左右,缺点就是为了达到很快的速度而丢掉了一部分网页兼容性。
Webkit:Webkit 是 Safari 采用的内核,不过 Safari 是苹果系统下的浏览器(虽然也有windows版,但是比较少),所以只简单介绍一下这个内核的优点和缺点,优点就是网页浏览速度较快,虽然不及 Presto 但是也胜于 Gecko 和 Trident,缺点是对于网页代码的容错性不高,也就是说对网页代码的兼容性较低,会使一些编写不标准的网页无法正确显示。
总结:就浏览器来说,互联网经历了十年的高速发展期,近几年市场上也推出了很多新的浏览器,但是他们并非是采用自主开发的内核,所以浏览器内核本身实际没有实质突破。
分享到:
相关推荐
'#################################### '# # '# ITlearner ASP探针 V1.3 # ...'# http://www.itlearner.com # '# # '# 转载本程序时请保留这些信息 # '# # '####################################
在服务器上浏览admin.asp,默认密码为ITlearner。进入后修改相关设定,修改好后提交,系统设置完成。 (如果你的服务器不支持fso,你可以手动更改config.asp中的文件,仅最后一项更改无效,但这不会影响到系统的...
memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、... ---★ 本文转摘自『IT学习者』→ http://www.itlearner.com/article/4327
【ITlearner ASP探针_v1.4.zip】是一款专门针对ASP(Active Server Pages)环境进行监控和检测的工具,主要用于帮助开发者和系统管理员了解ASP应用程序的运行状态和潜在问题。这款工具由ITlearner开发,版本号为v1.4...
程序名称: ITlearner PHP探针 功能描述: 服务器主要参数: 显示服务器的一些参数,操作系统、CPU信息、内存信息、WEB服务器软件、磁盘信息等。 Linux下可读取到即时的系统负荷、内存使用情况。 Apache下可罗列...
功能描述: 测试服务器基本信息: 显示服务器的一些参数,并带遍历Application、Session和服务器参数的功能。 测试服务器组件情况: 测试IIS自带,常用文件上传、收发邮件、图像处理等组件,和自定义组件的支持...
- 利用WebShell工具进行更深层次的渗透,例如通过上传ASP格式的WebShell (`#ITlearner.asp`)来获取对服务器的完全控制权。 #### 防范措施 1. **限制SA账户权限**:避免在生产环境中使用SA账户,并限制其访问敏感...
在互联网世界中,网站间的互相链接是提升流量、扩大影响力的重要手段。...它允许用户自主申请、修改和查询链接,同时系统能自动进行审核和排序,以优化网站链接的展示效果。 一、WEB开发基础 WEB开发是构建互联网应用...
IT学习者智能自助友情链接系统,按申请链接的网站平均每天点进的次数排序显示链接。...用户自助申请、修改、查询,系统自动审核,自动排列。 IT学习者智能自助友情链接系统 1.6 主要有如下改进: ...
是ITlearner以Ajiang和COCOON的ASP探针的代码为原型,结合部分自已原创的代码精心编写,服务器有关参数,服务器组件情况,服务器运算能力,服务器磁盘信息,服务器连接速度 v1.3更新:按Web标准重构,兼容在FireFox...
用最新,最酷的FLASH在等着你`` 加入了音乐频道`` 加入了电影频道``` 加入了在线书吧频道``` 加入了在线翻译频道``` 加入了ITlearner CuteCounter V1.6 流量统计系统``使得流量统计更加精确``修正了...
是ITlearner以Ajiang和COCOON的ASP探针的代码为原型,结合部分自已原创的代码精心编写,服务器有关参数,服务器组件情况,服务器运算能力,服务器磁盘信息,服务器连接速度 v1.3更新:按Web标准重构,兼容在Fire...