互联网是本世纪最伟大的产品,其自由开放的特征符合人类文化的特性,因此互联网产品迅速的走进每一个人的生活中。可以预见的是,将来人们的生活将极度的依赖于与各类互联网产品。因为互联网的开放自由的特性,因此互联网的产品也同时具有标准和自由两种极端的特征,在浏览器上,这两种特征表现的更加明显和重要。
一、浏览器的兼容问题的提出
在早前,微软的IE6浏览器曾经占据了90%强的市场,几乎成为浏览器的标准,在那个时期所有基于浏览器的网站只能唯一的以IE6马首是瞻,依据IE6的特性编写网页时最自然也是最正确的选择。已被Adobe以34亿美元收购的Macromedia公司以其出名的网页三剑客(Macromedia Dreamweaver、Macromedia Fireworks、Macromedia Flash)以可以快速所见即所得的方式编写Web网页而迅速被市场接受。Dreamweaver在当时提供了最为高效有效的用户体验方式进行网页的开发和布局。Dreamweaver以IE6为标准的开发模式在当时Web开发工具的市场上是最正确的选择。
2000年前的互联网仅仅是一些大企业用于技术研究、探讨和高科技技术人员的玩具,还没有真正的走入广群众的生活中。所以1999年12月W3C推出的在后期非常重要的HTML4.01版,但在当时的互联网环境下依然没有得到重视。微软于2001年8月27日发布的IE6中仅兼容了部分CSS1核心,并提出了自己的BOX模型,但对页面的渲染的方式和浏览器行为却冻结在了IE5.5 这个版本。同时Macromedia在1998年大获成功之后,也没有考虑W3C的标准化Web设计,而是将注意力关注到了在线多媒体和适量动画的表现上,于2000年推出Flash5和2001年推出3D Shockwave 。
1.1 浏览器第一次大战
1994年4月4日由Marc Andreessen和Jim Clark共同创立马赛克通信公司以当年10月13日开放并推出Mosaic Netscape浏览器(国内称网景浏览器)。由于当时的市场和技术空白,Netscape的成功令人难以置信,1995年8月9日,公司首次公开募股获得巨大成功。原本股票价值为每股14美元,但因为一个临时的决定,股价被倍增至每股28美元。在第一天收市时,股价升至每股75美元,差不多为当时创记录的首日获利。在1995年,该公司的收入每季上升一倍。
很快这吸引到微软的注意,微软随后发布了Internet Explorer 1.0。这个软件都是随Windows附送的,用户可免费使用(Netscape当时是收费的)。微软更利用该公司其他部门的收入来支援开发 Internet Explorer所需的资金。这个时期现在称为“浏览器大战”。
为了超越对方,当时Netscape和微软都分别在它们的浏览器上加上许多功能,版本号码亦增加得很快。因为拥有专注的人力和财力,Internet Explorer当时是处于上方的。到了3.0版,Internet Explorer在功能上差不多等同于Netscape Communicator,而到4.0版,用户认为Internet Explorer运作上是比较稳定的。在对于Netscape其他的产品,微软亦提供了相对应的免费产品,例如随Windows NT附送的Internet Information Server服务器软件。
当微软的浏览器在进步的同时,Netscape开始犯错不断,公司面对越来越多对它的产品程序错误的批抨。批评者认为Netscape把增加功能的重要性放得很高,但又没有确保那些功能能够正常运作。公众对公司的意见渐趋负面,尤其在1997年第4季和1998年1月的大规模裁员。 AOL(美国在线)在1998年11月24日公布它会以价值42亿美元、免税换股的方式收购Netscape。当AOL发现很难在当时原始码的基础上继续开发Netscape Communicator后,Netscape开始被抛弃,2003年AOL宣布解散Netscape,2008年3月1日ADL宣布起停止开发Netscape Navigator,并停止一切技术支持。AOL在线官方博客说:作为一款曾经改变了整个互联网的浏览器,Netscape浏览器。目前已经寿终正寝,正式退出历史舞台。
这次的浏览器大战,以微软的IE浏览器完胜为标记。不过Netscape Navigator在支持不住的最后时刻,它以Netscape公共许可证(Netscape Public License,简称NPL)发布原始码,这为第二次的浏览器大战埋下了伏笔。
1.2 浏览器第二次大战
第一轮浏览器大战最后以Netscape被收购,Internet Explorer独霸浏览器市场告终。浏览器之战失利以后,Netscape并没有消失,为了挽回市场,1998年Netscape将浏览器的大部分代码开源,成立了一个组织,计划开发下一代的 Netscape浏览器,这个组织就是Mozilla。不过不久后,Netscape的源代码就暴露出很多问题,说明被IE打败的确源自技术落后,所以源代码就差不多被全部抛弃了。
与赢得浏览器大战后就不思进取的IE相比,Mozilla算的上是兢兢业业鞠躬尽瘁,其开始重新编写一套浏览器,该浏览器就是现在的Firefox(火狐)。2002年9月发布了0.1版。在经过多次改名后,最终定名为Mozilla Firefox,于2004年11月9日发布了第一个正式版本Firefox 1.0,当时Mozilla基金会通过募捐的方式,在纽约时报上面刊登了整版的广告,不过, Firefox的推广更多是依靠使用者的口碑式宣传。 Firefox的版本更新非常快而且开放,而且容许第三方插件,因此在技术人员群体中被流传的非常快速,而且由于Mozilla把自己表现的想一个地下抵抗组织,把微软形容成类似希特勒的形象,所以Mozilla在欧洲很多国家的市场占有率已经达到威胁IE龙头地位的水平了。
当世界发现,随着互联网的发展,浏览器不在是微软独家的天下。因此各个微软的对手开始重新审视W3C的标准和规范。并且很多互联网企业开始认真的思考一个问题:谁控制浏览器,谁就控制了互联网入口,谁就控制了互联网。让微软重新拖回到起跑线上的唯一方式就是必须重新组织一场比赛,因此互联网的巨头们开始要求微软重新加入一场新的比赛,这场比赛的规则是以W3C公布的HTML、CSS等位标准的浏览器大赛。
刚开始微软完全不在意这场比赛,然而微软很快的就无奈的发现一个现象,观众们喜欢看比赛,喜欢看运动员在场上竞争,只有微软一个人的T台无人喝彩,而比田径比赛混乱的多的橄榄球比赛现场却是人气沸腾。这次参与比赛的有很多选手:挪威选手opera,Google选手Chrome,老对手Firefox,苹果的Safari,还有来自中国的一群赛手360,TT什么的。
第二次大战虽然参与者很多,但在标准公开的情况下,各浏览器表现的非常正常,以符合W3C规范为概念,以兼容为目标,基本上可以说的上是比赛的算是君子+流氓模式,至少在台前,各浏览器厂商以非常君子的面目进行。第二次大战目前虽然说不上已经结束,但应该说进入了尾声,以微软放弃IE6,推出IE 8 9 为标记。这次没有明显的输赢,所有的浏览器厂商都开始进入以拥抱W3C标准为基础的开发的标准浏览器时间。
1.3 马上要进入的第三次大战
如果说第一次浏览器大战是Microsoft VS Netscape的两人角斗,那么第二次浏览器大战就是一场金顶之上的群雄虎斗,Microsoft可以说是李沉舟,Google可以说的上是萧秋水了。
微软体会到了被群殴的感觉,也知道了拉着标准大旗再无耻也是正义的代表,因此马上要爆发的,或者说已经开始的第三次大战就是微软加入君子流氓的阵营,开始群殴一个已经老去的英雄:Adob。Adob收购了Dreamweaver后,从平面媒体涉及到Web媒体,不过Adobe算是比较知足的公司,这10年来没有在Web设计市场上有太多的野心,但君子怀玉,无罪也诛。Adob拥有了Web页面事实上的多媒体和矢量动画的标准Flash,这样一个宝贝自然是所以其他公司的眼中钉,杀人要讲道理,砍人要有理由,这次君子们的武器还是标准这个不二法门,从目前的情况来看,使用HTML5和javascript实施多媒体在Web上的运载是对付Adobe的利器。而且个人终端的处理能力愈来愈强大,IE9开始支持GPU的运算,看来这次Adob真可能是在劫难逃。Flash也许不需要多久就要被边缘化了。
1.4 浏览器的兼容
目前市面上流行的浏览器有多种,这些浏览器在处理一个相同的页面时,各浏览器厂商的表现或行为有时会有差异。这种差异可能很小,甚至不会被注意到;也可能很大,甚至造成在某个浏览器下无法正常浏览。我们把引起这些差异的问题统称为“浏览器兼容性问题”。因为各品牌浏览器的内核是不同的,不同的内核处理同一段代码的时候思路不同。因此可以说,浏览器间内核的差异是产生兼容性问题的根本原因。
IE6和IE7的“标准模式”在它们推出的年月中是很接近当时的标准的,虽然时过境迁,由于需要重新比赛,所以当时的很多标准不会迁就IE67,所以在现在看来它们已经不够“标准”,所以我们把 IE6 和 IE7 当年的、现在看起来并不足够接近标准的“标准模式”称做 IE6和IE7 的“标准模式”。
中国目前的浏览器大致情况为
l 以表现自己阳春白雪的群体用:Firefox
l 及其热爱和追捧Google的群体用:Chrome
l 大学政府机关由于懒得升级用:IE6
l QQ的粉丝用:TT
l 个人用户中由于盗版从来不升级的用户用:IE6或360安全浏览器
l 一些高端用户用IE7 8.
l 还有用遨游,世界之窗等等。
在中国,这个极具特色的国家中,对中国的Web开发工程师来说,多浏览器的兼容性测试最为头疼,一方面中国是世界上浏览器种类最多的国家,另一方面有超过半数的网民依然在使用非标准的IE6,Web标准迟迟得不到推行,对技术人员的跨浏览器开发能力提出了更高要求。
本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/803142