[科普]浏览器 UA 史

本文原文来自 WebAIM 2008 年介绍浏览器 User Agent 演化史的一篇文章 (http://webaim.org/blog/user-agent-string-history/),内容有各个主流浏览器 UA 串的产生缘由和为何全部浏览器都带有 Mozilla 等问题的解释。读过 Internet Explorer 11: “请不要再叫我 IE”一文评论以后发现大部分 CB 读者并不了解目前浏览器 UA 产生的缘由和为何要统一到 Netscape/Gecko,因此但愿投递本文能解释清楚这些状况背后的缘由。 

起初东边来一浏览器叫 NCSA Mosaic,自称 NCSA_Mosaic/2.0 (Windows 3.1),渲染网页图文并茂,人民群众见了喜大普奔。

而后西边来一浏览器叫 Mozilla,就是“干死 Mosaic”的缩写。Mosaic 不高兴了,Mozilla 悻悻更名网景,但仍是自称 Mozilla/1.0 (Win3.1),人民群众见有新浏览器用更加喜大普奔。网景独创网页框架,框架深得群众欢心。惋惜 Mosaic 不认识框架,为了少麻烦智慧的劳动人民创造了 UA 探测:管本身叫 Mozilla 的有框架,无论本身叫 Mozilla 的一概不给发框架!

网景作大了开始戏耍微软开心,管 Windows 叫“蓝屏死机烂驱动”。微软怒从中来,誓言本身作浏览器搞死网景,因而还真的作出了个 Internet Explorer。IE 有框架可又不是 Mozilla,因而见到陌生人的服务器纷纷发没框架卡:对不起,你是一个 Mosaic。微软没耐心了,感到等到网管搞清楚 IE 是啥大概要猴年马月,因而让 IE 说本身是 Mozilla 兼容以便冒充网景——自称 Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)。今后 IE 也有了框架用,微软上下喜大普奔,莫名奇妙的 UA 却搞得各家网管晕头转向。

Windows 开始捆绑 IE,IE 越作越好远胜网景,因而第一次浏览器大战打响了。结果网景惨败,微软上下喜大普奔,却没注意到死后的网景涅盘成了 Mozilla 基金会。Mozilla 制做了 Gecko,自称 Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826,里面的 Gecko 是个优秀的渲染引擎。Mozilla 后来又成了火狐,自称 Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0,火狐是极好的。Gecko 又开始增殖扩张,很多浏览器站在 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 又不行了,因此 UA 探测又焕发生机了:说本身有 Gecko 的浏览器有好网页,剩下的浏览器不合标准的残羹剩饭凑合吃吧。可是 Linux 用户不满了——由于他们有心里是 KHTML 的 Konqueror,而他们以为本身的 KHTML 和 Gecko 同样棒。但是 KHTML 不是 Gecko,因此在服务器的眼里只能和 IE 一块儿扒剩饭吃。所以 Konqueror 开始自称“相似 Gecko”,全名 Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)。各家网管再次晕头转向。

这时候自由派的 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,敲敲打打修修补补一番满意以后改称 WebKit。Safari 想要用给 KHTML 准备的网页,所以自称 Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5。这个世界愈发混乱了。

微软害怕 Firefox 抢占市场,所以 IE 再度回归,自称 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)。IE 8 是能渲染好网页的——不过只限网管明确命令它如此作的状况下。

而后谷歌又有了 Chrome,Chrome 和 Safari 同样用 WebKit,因此想要用写给 Safari 的网页,因而就伪装本身是 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,明眼人都能看出来这名字乱的一塌糊涂几乎一点用都没有。这时候一群浏览器互相冒充,已经到了全部人都搞不清楚的地步了。


 ——Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20130701 Firefox/25.0
 ——Thu Jul 04 2013 10:08:21 GMT+0800
web



-------------浏览器

附:服务器

1.为何浏览器User Agent(UA)中都有个mozilla???框架

相关文章
相关标签/搜索