浏览器User-Agent的历史衍变

浏览器User-Agent的历史衍变

l历史还得追溯到NCSA Mosaic,Mosaic是由国家超级计算机应用中心开发的一款浏览器。称作“NCSA_Mosaic/2.0(Windows 3.1)”,Mosaic支持在文本中展示图片,因此浏览器变的非常有趣了。

浏览器User-Agent的历史衍变

然而很快就出现了一个全新的浏览器,那就是著名的Mozilla,它被称为“Mosaic杀手”,然而Mosaic显得不高兴了,于是后来Mozilla更名为Netscape,Netscape自称“Mozilla/1.0(Win3.1)”,事情开始变得更加有趣了。Netscape支持框架,框架深受大家喜爱便流行开来,但是Mosaic不支持框架,于是网站管理员探测浏览器的User-Agent,对Mozilla浏览器发送含有框架的页面,对非Mozilla浏览器发送没有框架的页面。

浏览器User-Agent的历史衍变

后来Netscape戏称微软的Windows是“非调试过的硬件驱动程序”,结果微软很生气。于是微软开发了自己的网络浏览器Internet Explorer,微软对Internet Explorer寄予厚望,并希望它可以成为“Netscape杀手”。Internet Explorer也支持框架,但它不像Mozilla可以接收有框架的页面。微软很快失去了耐心,它不能坐以待毙,微软选择将Internet Explorer兼容Mozilla,开始模仿Netscape,称Internet Explorer为“Mozilla/1.22(compatible; MSIE 2.0; Windows 95)”,所以Internet Explorer可以收到含有框架的页面了,所有微软的人都很高兴,但是网站管理员却为此大为苦恼。

浏览器User-Agent的历史衍变

微软将Internet Explorer和Windows捆绑销售,而且把Internet Explorer做得比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的技术。

浏览器User-Agent的历史衍变

Gecko表现出色,而Internet Explorer比不过它,之后嗅探规则变了,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)”。

浏览器User-Agent的历史衍变

之后苹果使用KHTML渲染引擎开发了Safari,但加入了许多特性,并另辟分支称之为WebKit,但它仍想为KHTML编写页面,所以Safari自称“Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5”,事情变得更加糟糕了。

微软十分忌惮Firefox的强大,Internet Explorer重新回归,这次它自称“Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)”,它提供了更加优秀的代码,但是需要网站管理员的指令。

浏览器User-Agent的历史衍变

此时谷歌使用Webkit作为渲染引擎开发了Chrome,和Safari一样,那些想要那些为Safari编写的页面,于是伪装成了Safari。于是Chrome使用WebKit,伪装成Safari,WebKit伪装成KHTML,KHTML伪装成Gecko,最后所有的浏览器都伪装成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最后完全混乱了,而且毫无章法,所有浏览器都伪装成其它的浏览器,致使整个事情变得混乱有趣!


分享到:


相關文章: