血战的浏览器历史
普遍认为,91年正式发布的WorldWideWeb是全球最早的一款浏览器,后来改名为Nexus,特点是可以兼容Unix和Microsoft DOS的,但是还不支持图片的显示,虽然功能有限,但在当时却非常流行。
93年,美国伊利诺州的NCSA组织发明了一款可以显示图片的浏览器,可是偏偏就命名为马赛克(Mosaic),这不当紧,让“网络管理员”抓狂了,怎么分辨你的浏览器是否能显示图片呢,所以 UserAgent就诞生了,Mosaic将自己标志为NCSA_Mosaic/2.0(windows 3.1),这也是我们使用浏览器发送请求的时候请求头有一个字段为UserAgent的最开始原因。
94年,Mosaic开发的中心人物 马克·安德森等成立了“MOSAIC Communication Corp”, 但是由于NCSA拥有Mosaic的商标权,使得开发团队不得不彻底重新撰写浏览器代码,试图打破Mosaic的的垄断,开发了一款浏览器 Mozilla ,Mozilla 啥意思呢 Mozilla = Mosaic Godzilla Killa ,Godzilla,哥斯拉庞然怪兽,Killa是俚语中Killer的拼发,大概的意思就是马赛克终结者。但是Mosaic非常不高兴,该浏览器最大的特点是以共享软件的方式贩卖,同时又支持框架(frame),而Mosaic不支持框架,所以网景当时的市场占有率约有90%,可谓是一个浏览器界发展史上的重要里程碑。为了避免和NCSA的商标拥有问题,将公式改名为网景通讯公司(Netscape Communications Corporation),同年,浏览器软件也改名为 Netscape Navigator,也就是我们所知道的大名鼎鼎的网景浏览器。有趣的是,它大名虽然叫网景,但是偷偷的把UserAgent 设置成 Mozilla/1.0,于是网站管理员探测UserAgent对于Mozilla浏览器发送含有框架的页面
接下来,网景浏览器继续迅速发展,伴随着Java等技术标准的提出,一种基于Internet而首次和微软的操作系统无关的新的软件体系形成,以网景为首的一批互联网技术公司的崛起,迅速构成了一股隐隐的可以与微软分庭抗礼的新力量。让微软感到害怕的是:如果网景在浏览器市场上取得垄断性优势,它就完全有可能和实力推出一套新的操作系统以替代微软的Windows。所以比尔盖茨和网景谈判,希望能建立合作关系,这可是微软仅有的一次“屈膝”。可是已经取得战略先机的网景岂会买账,谈判破裂。
这下彻底惹怒了微软,95年,被逼急了的微软在短短的一年时间,投入20亿美元,通过购买(包括Mosaic的授权)、兼并和开发等多种手段,迅速地推出了一个浏览器产品IE2.0。为了彻底摧毁网景,微软决定,将这一产品实行免费开放。不要白不要的IE一下子就把浏览器市场的游戏规则给冲乱了。在此之前,网景浏览器的收费标准为45美元,而IE的功能与之相近却分文不收,无疑让包括网景在内的所有公司和消费者都目瞪口呆。这还不够,半年后,微软又使出另一个杀手锏,宣布Windows95与IE捆绑销售,这一招让网景彻底绝望了,眼看着微软利用操作系统的垄断(当时windows操作系统拥有的90%以上的份额)去创造另一个新的垄断,浏览器的市场迅速被微软抢占,有趣的是IE浏览器也支持框架,但是要等到所有网站管理员都了解到了IE,才给IE也发送含有框架的页面,显然IE一刻也不想等了,它宣布自己是兼容Mozilla的,还将自己的UserAgent改成了 Mozilla/1.22(compatible; MSIE 2.0; Windows 95),所以IE浏览器就也能收到含有框架的页面了
98年,网景在与IE浏览器竞争失利以后,为了挽回市场,宣布旗下所有软件以后都是免费,并开放了网景通信家(Netscape Communicator)4.0的源代码,成立了非正式组织Mozilla。
微软已经占据了操作系统的垄断市场了,眼看浏览器的市场也将被垄断。为了让这不成为事实,98年11月美国在线AOL 耗资42亿美元收购了网景,避免了这一切的发生。为了防止浏览器再度被垄断,美国在线在后面几年相继发布了 Netscape 5 6 等几个版本。可是这对微软来说完全都不是事,完全动摇不了IE的地位。于是美国在线和微软因为浏览器垄断这事情一直没能达成协议,打官司。
最后微软因滥用垄断能力而败讼后,美国在线向微软提出索偿诉讼。在2003年5月,微软和美国在线达成和解协议,愿意支付网景7.5亿美元,并同意向美国在线提供7年无限制的使用和散布Internet Explorer的权利。这被认为是“网景退出的信号”。
03年七月,美国在线解散网景公司,网景的标志也从办公大楼中去除,并且将Netscape的源码送给开源社区,并且成立了Mozilla基金会,而这个基金会就是现在Firefox浏览器的管理与推进组织
浏览器中的Mozilla
因为微软将IE和Windows捆绑销售,并且把IE做得比Netscape更好,于是第一次浏览器血腥大战爆发了,结果是Netscape以失败退出历史舞台,微软更加嗨皮。但没想到Netscape居然以Mozilla的名义重生了,并且开发了Gecko,这次它自称为“Mozilla/5.0(Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826”。
Gecko是一款渲染引擎并且很出色。Mozilla后来变成了Firefox,并自称“Mozilla/5.0 (Windows; U;Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108
Firefox/1.0”。Firefox性能很出色,Gecko也开始攻城略地,其他新的浏览器使用了它的代码,并且将它们自己称为“Mozilla/5.0
(Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825
Camino/0.8.1”,以及“Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008
SeaMonkey/1.0”,每一个都将自己装作Mozilla,而它们全都使用Gecko。Gecko很出色,而IE完全跟不上它,因此useragent探测规则变了,使用Gecko的浏览器被发送了更好的代码,而其他浏览器则没有这种待遇。Linux的追随者对此很难过,因为他们编写Konqueror,它的引擎是KHTML,他们认为KHTML和Gecko一样出色,但却因为不是Gecko而得不到好的页面,于是Konqueror为得到更好的页面开始将自己伪装成“like Gecko”,并自称为“Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)”。自此user agent变得更加混乱。
这时更有Opera跳出来说“毫无疑问,我们应该让用户来决定他们想让我们伪装成哪个浏览器。”于是Opera干脆创建了菜单项让用户自主选择让Opera浏览器变成“Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51”,或者“Mozilla/5.0(Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51”, 或者“Opera/9.51 (Windows NT 5.1; U; en)”。
后来苹果开发了Safari浏览器,并使用KHTML作为渲染引擎,但苹果加入了许多新的特性,于是苹果从KHTML另辟分支称之为WebKit,但它又不想抛弃那些为KHTML编写的页面,于是Safari自称为“Mozilla/5.0(Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5”,这进一步加剧了user agent的混乱局面。
因为微软十分忌惮Firefox,于是IE重装上阵,这次它自称为“Mozilla/4.0 (compatible; MSIE 8.0;Windows NT 6.0) ”,并且渲染效果同样出色,但是需要网站管理员的指令它这么做才行。
再后来,谷歌开发了Chrome浏览器,Chrome使用Webkit作为渲染引擎,和Safari之前一样,它想要那些为Safari编写的页面,于是它伪装成了Safari。于是Chrome使用WebKit,并将自己伪装成Safari,WebKit伪装成KHTML,KHTML伪装成Gecko,最后所有的浏览器都伪装成了Mozilla,这就是为什么所有的浏览器User-Agent里都有Mozilla。Chrome自称为“Mozilla/5.0(Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13”。
因为以上这段历史,现在的User-Agent字符串变得一团糟,几乎根本无法彰显它最初的意义。追根溯源,微软可以说是这一切的始作俑者,但后来每一个人都在试图假扮别人,最终把User-Agent搞得混乱不堪。
一句话结论:因为网站开发者可能会因为你是某浏览器(这里是
Mozilla),所以输出一些特殊功能的程序代码(这里指好的特殊功能),所以当其它浏览器也支持这种好功能时,就试图去模仿 Mozilla
浏览器让网站输出跟 Mozilla 一样的内容,而不是输出被阉割功能的程序代码。大家都为了让网站输出最好的内容,都试图假装自己是 Mozilla 一个已经不存在的浏览器……
附各大浏览器诞生年表:
- 1993年1月23日:Mosaic
- 1994年12月:Netscape
- 1994年:Opera
- 1995年8月16日:Internet Explorer
- 1996年10月14日:Kongqueror
- 2003年1月7日:Safari
- 2008年9月2日:Chrome
参考 :http://blog.csdn.net/puppylpg/article/details/47319401
转自:https://blog.csdn.net/qzcsu/article/details/73650767