【Web】Yslow优化法则(四)启用Gzip压缩
目前世界上主要有来自四个不同机构的四种的Web浏览器内核。每一家机构都推出了至少一种使用自己的内核的浏览器产品。
这四家机构分别是Microsoft、Mozilla、Apple和Opera SAS,提供的内核则分别叫做Trident、Gecko、WebKit和Presto,推出的主打浏览器则分别叫做Internet Explorer、Firefox、Safari和Opera。
人们常常也用主打浏览器的名字来代替内核的名字,特别是对不开源的Trident和Presto,几乎人人都称之为“IE内核”和“Opera内核”。
内核们的市场份额
虽然号称是四大内核,但是在市场份额上,大家还是有相当显著的区别。
截止2007年11月,世界各市场合计,四大内核的市场占有率分别是:
- IE约占77.35%,主要是IE 6.0(40.24%)和IE 7.0(36.84%)
- Gecko约占16.01%,主要是Firefox 2.0
- WebKit约占5.14%,主要是Safari 3.0
- Opera约占0.65%,主要是Opera 9.X
剩下的市场份额里,还有一大部分是这些内核的早期版本和嵌入式版本。
不过,在世界的不同区域的具体情况,和平均值又可以有很大的出入。以Gecko内核为例,在欧洲的占有率比平均值要高很多(接近30%),而在中国大陆就比平均值要低不少(长期使用者大约2%,如果记入偶尔使用者,大约8%)。
Trident/IE内核
Trident是Microsoft从1997年以来的主打浏览器内核。第一个使用该内核的产品是IE 4.0。目前最新的稳定版本是IE 7使用的Trident V。
Trident内核及其前身曾经创造过很多功能方面的世界记录。率先支持了很多Web标准,并引入了多个后来被广泛的接受的扩展。不过,在标准支持的完整程度和扩展设计的完备程度上,一直不算很高。
Trident系列的内核在世界上最早的支持了CSS 1。这使得人们第一次有可能实现把一个页面的结构与样式分离。不过,一直到2001年的IE 6.0,Trident还对一些CSS 1里的属性支持有缺陷,而且直至2006年推出IE 7.0时才完成了修正。IE 7里的Trident V仍不能很好的支持CSS 2,不过推出时间尚未确定的IE 8的支持就已经比较完善了。
Trident系列的内核在世界上最早的支持了DOM 1。使得人们第一次用JavaScript动态的修改文档对象模型,然后实时的看到页面发生动态的变化。不过,从此以后对DOM标准的支援程度一直没有很大提高,目前已经是世界上对DOM支持最差的主要内核。特别是完全不支持DOM 2里的事件模型。
Trident还是世界上第一个支持XMLHttpRequest的浏览器内核。这使得人们第一次可以在页面里用脚本实现后台数据传输。这一扩展后来被所有的主要内核进行了效仿。在现代Web应用中发挥着重要的作用。
Trident也是世界上第一个支持“可编辑内容”的浏览器内核。这使得人们第一次可以在主流浏览器里动态的编辑某个区域,然后获得表示这个区域的HTML数据。这一扩展也被所有的主要内核进行了消化吸收。不过IE生成的HTML代码结构不够优雅,而其它的实现进行了一些调整,结果要清晰一些。
2001年后,Trident内核的开发工作停滞了很长时间。因此对XHTML、CSS 2.1、MathML、SVG、DOM 2、DOM 3之类的标准的支持远不如其它三种。对CSS 3、ECMAScript 4、HTML 5的开发也没有表现出很大的热情。
Trident只有Windows平台上的版本。在Mac版的IE(已停止开发)和Mac版的Office(在继续开发)中使用的是另一个名为Tasman的内核。
Gecko/Firefox内核
Gecko是Mozilla从1998年以后一直主推的浏览器内核。最著名的使用该内核的产品是Firefox。目前最新的稳定版本是Firefox 2使用的Gecko 1.8。
Gecko是一款开源产品,目前基于MPL/LGPL/GPL三重许可证发表。
在1998年初,因为历史包袱太重,没有及时的加入对CSS和DOM的完备支持,Netscape Navigator的“浏览器市场的垄断者”的地位受到了IE的严重威胁。在这个时候,他们的决策层决定尝试用当时刚刚名声大振的市集模式来进行下一步的产品开发。他们将这个主意取名为Mozilla计划。
这一尝试最初并不成功。由于历史包袱实在太重,整个开发团队决定对现存的源代码进行一次大规模的重写。这次重写花掉了好几年的时间。在这段时间里,Netscape一直没有新的内核可用,于是只好看着IE 4.0、5.0、5.5相继面世,然后一点一点的抢光自己的市场份额。这件事后来常常被当作“无论如何,不要重写已有的产品级代码”的证据来引用。
Gecko便是这次重写的重要产物。第一个功能和稳定性大致及格的基于Gecko内核的浏览器诞生于2001年2月的Mozilla Suite 0.8。在大约一年半之后的2002年6月,Mozilla Suite发布了正式的1.0版。但是这个时候,IE几乎已经吃下了全部市场。此后Mozilla Suite尽管一直在演化,但不曾在市场上造成任何的影响。如果不是后来有人作出了同样基于Gecko内核的Firefox,然后在市场上大受好评,反攻出16%的市场占有率,并实现了年入数千万美元,整个Mozilla计划几乎可以被当成以失败而告终了。
经过了一次艰难的重写之后,Gecko内核对现代Web标准有了良好的兼容性。对HTML、XHTML、CSS、XML、XSLT、DOM 0/1/2、JavaScript都有不错的支援。而且率先支持了表示数学公式的MathML和表示矢量图形的SVG。在扩展方面,也有学自IE的XMLHttpRequest(已被收入标准草稿)、学自WebKit的Canvas 2D(已被收入标准草稿)、引自WHATWG的Storage API(已被收入标准草稿)、自创的XBL(后续版本标准化中)以及有限的“可编辑内容”。在处于测试阶段的Gecko 1.9中,“可编辑内容”的功能得到了强化,Canvas 3D正在试验当中。
Gecko内核及其前身的最重要的世界记录是最早实现了JavaScript。没有这个技术,就无所谓浏览器端的编程。
Gecko可以很好的在Windows、Linux和Mac OS X上运转。在多种其它UNIX上,也有移植版本存在。
WebKit/Safari内核
WebKit是Apple推出的Safari浏览器的内核。Safari是Mac OS X上的默认浏览器,也有适合于XP之后的Windows的版本。
WebKit跟Gecko一样是开源产品,诞生于Mozilla看起最黯淡无光的那段时间,基于类BSD许可证。
WebKit内核的速度很快,对标准的支持也强,资源占用又不多,是一款很有特色的浏览器内核。
Presto/Opera内核
Opera是Opera SAS经营多年的一款最初以小巧闻名,目前以迅速出彩的浏览器。Presto是目前Opera的内核的名号。
尽管在桌面领域,Opera的影响并不算大,但嵌入式版本的名声很好。
Presto的长处跟WebKit类似,也是在速度、标准支持和资源占用方面具有上佳的表现。
移动设备市场
目前许多移动电子设备也内置了对Web的访问能力。但是在世界范围来说,用于移动设备中的各种浏览器的市场份额合计,目前还只有不足1%。
许多人和机构都认为移动互联网相关的产业会在未来的某一天有巨大的市场规模,所以早早进行了很大的投入来开展很多的尝试。但是从目前的消费者的行为上看,这些尝试还都并不十分成功。