最近在看《给产品经理讲技能》,个中有一段简要的提到了浏览器UserAgent的含义和浸染。在末了作者暗示UserAgent的变迁是一段充满意见意义性的历史,为了知足我的好(吃)奇(瓜)生理,我去深扒了一下。
结果不扒不知道,一扒吓一跳。本日就给大家分享一下这个陈年迈瓜。
首先,我们先简要理解一下各大浏览器的出生日期:
大家先对这些浏览器的出生韶光有一个观点,然后大家把板凳和西瓜拿好,让我们开始吧~
一、第一个浏览器:Nexus
1989年,超级大神伯纳斯·李教授发明了万维网(World Wide Web,简称3W),然而大神并不知足于此,为了大家能更方便地访问万维网,大神大手一挥,推出了天下上第一款浏览器。
李大神寻思给它起个什么名字呢?
此时,李大神可能是
后来大神觉得互换起来不是很方便,常常不知道World Wide Web指的是谁,而且这么偷
由于是浏览器的祖师爷,没有竞争对手,Nexus立时就盛行了起来。
由于是最早的浏览器,Nexus只支持笔墨展示,还不支持图片展示,而这恰好给了竞争对手可乘之机,同时也是UserAgent的由来。
二、第一个带图的浏览器:Mosaic
1993年,伊利诺伊的NCSA组织认为没有图片的网页就像失落去颜色的天下!
作为一群完美主义者,这完备不能忍!
因此他们发明了第一个可以显示图片的浏览器:Mosaic(马赛克),能显示图片,但大神们偏偏任性取名叫马赛克!
浩瀚吃瓜群众不禁直呼行家!
由于能显示图片的特性,Mosaic迅速盛行了起来。但是到这里,大家可能会创造,此时的霸主是Nexus,它是不能显示图片的,而Mosaic能显示,这就叫html的开拓陷入了两难的田地。
正当html开拓者抓耳挠腮的时候,谅解的Mosaic想到了一个办法:这实质上便是一个身份的问题嘛,那我就在给你发要求的时候见告你们我的身份,和Nexus区分开来不就行了?
这便是UserAgent的由来,它最初的浸染只是向做事器表明自己的身份——Mosaic的UserAgent为:NCSA_Mosaic/2.0 (Windows 3.1)
NCSA_Mosaic代表自己是什么浏览器,2.0代表版本号,Windows 3.1表示自己可以在什么系统下运行。
这样一来,html开拓者该怎么开拓还是怎么开拓,只是如果UserAgent表明是Mosaic就发送带图片的网页,如果不是,就发送不带图片的网页。
但是,伊利诺伊的大神们到去世也不会想到,就这么大略的一个UserAgent,竟然被子弟们玩出了花。
三、Mosaic杀手:Mozilla
看到Mozilla,大家是不是很眼熟?随便打开一个浏览器,查看它的UserAgent,都会创造带有Mozilla标记。是不是很奇怪,为什么不同公司的浏览器,不管是IE、谷歌、Safari等,都带有Mozilla呢?听我逐步道来。
在Mosaic如日中天的时候,一头初生怪兽偏偏不服,它为自己设立了一个伟大的目标:推翻Mosaic的霸主地位!
这头初生怪兽便是后来大名鼎鼎的网景公司,他们发明了一款浏览器,希望能够取代Mosaic!
而不愧是初生怪兽,没别的,便是头铁,大神们给他们的浏览器取名为:Mozilla。
什么意思呢? Mozilla由“Mosaic Killa”(Killa是鄙谚中Killer的拼法)变革而来,并且是怪兽Godzilla(哥斯拉)的谐音,即“Godzilla eat the Mosaic!
”
这便是赤果果的挑衅啊!
你看,互联网的源头就充斥着血腥!
Mozilla大声喝问道:Mosaic你这老头目怕不怕!
Mosaic瑟瑟颤动(不知道是气的,还是怕的)地看着这头狂妄的小怪兽,勃然大怒(恼羞成怒)到:“给老子滚粗!
”
于是网景碍于当时Mosaic的江湖地位,不得已“从心”的把名字改成了Netscape Navigator(网景航海家)。
但是“小怪兽”口服心不服,仍旧偷偷地在自己的UserAgent后面写上了Mozilla/1.0 (Win3.1)。
四、泼皮来了:IE
小怪兽还是有点本事的,NetScape最先支持html框架显示,便是大略的table布局,内外边距之类,仅仅这点在体验上就远超Mosaic。
以是,末了Mozilla如愿”吃掉了”Mosaic,成为了霸主。
开拓者为了差异这两个浏览器,还是用的UserAgent。约定如果是UserAgent里含有“Mozilla”字样,就发送支持框架的页面,否则就发送不含框架的页面。
浏览器作为万维网的入口,从来都是计策必争之地,竞争自然无法避免。微软率先使出了”不要脸“战术”,仗着自己的操作系统地位,开拓了一款强行和系统绑定的浏览器。
古语云:泼皮不可怕,就怕泼皮有文化!
古人诚不欺我!
那么这个浏览器叫什么好呢?
吃瓜群众:Mozilla killer?
微软大神:滚蛋,能不能像我们一样成熟一点?!
务实的微软大神们取名可不搞这些花里胡哨的,直接取名叫IE,即Internet Explore,虽然没有Mozilla这么霸气,但是大略易懂且易记啊。
要想和Mozilla竞争,IE肯定也是支持html框架的,但是开拓者们才不管,开拓者们只会给UserAgent带有Mozilla的浏览器发送带框架的页面。
但是你以为这点小事就能难倒我大微软,天真!
微软眼咕噜一转,呵呵一笑:切,既然如此,那我易容成Mozilla不就行了?
于是,微软给IE披上了一层怪兽皮,把自己的UserAgent改成了:Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)。
你看,我也是Mozilla,这样你就可以把带框架的页面发给我了~
尝到耍泼皮甜头的微软一发不可整顿,利用自己操作系统的上风,将易容后的IE逼迫和操作系统绑定:你就用我的系统免费赠予的IE浏览器,还要啥自行车?!
凭借不输Mozilla的性能和泼皮的手段,IE终极降服了Mozilla,但是从此IE也永久带上了Mozilla的标记。
五、浴火重生的狐狸:FireFox
但是,怪兽不愧是怪兽,强大的怪兽怎么能被泼皮轻易击败呢?!
曾经Mozilla的大神们卷土重来,他们利用浏览器排版引擎Gecko(壁虎)发明了另一款精良的浏览器,它在插件拓展和开拓调试领域做出的贡献,绝对可以载入互联网历史。
这么跨时期的创造,叫什么好呢?众所周知,Mozilla的大神们总是对怪兽情有独钟,既然我们从失落败中浴火重生,那么其名曰:Phoenix(凤凰)!
!
但是Phoenix(凤凰)还没起飞就遭遇了折翼,阁下一家叫凤凰科技的公司强烈抗议:魂淡,是我先叫Phoenix(凤凰)的,你们侵权了!
大神们很无奈,没办法,那我们叫Firebird(火鸟),总行了吧?!
虽然听起来挺中二的,但是也弗成。由于有一款数据库也叫这个名字。
大神们抓狂,起个名字怎么这么难?!
泪流满面的大神们终极给这款划时期的浏览器起名叫FireFox(火狐)。
FireFox(火狐)至今还是最常用的浏览器之一,可见其精良程度竟胆怯如此!
大神们为了见告开拓者们,我是如此的精良,你们可以给我更好更炫酷的页面了!
于是,FireFox(火狐)标志自己的UserAgent为:Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0。
虽然这个UserAgent看起来很长,但是信息还是比较清晰,表明了自己的身份是Moziila5.0和Firefox/1.0,支持的系统和利用的Gecko的引擎。
和之前一样,开拓者们只会给作为首创者的FireFox(火狐)发送更优质的html页面。FireFox(火狐)凭借精良的性能,发展非常迅速,虽然没有打败IE,但是也能和IE分庭抗礼。
六、萌贱萌贱的Konqueror
而在IE和FireFox(火狐)互掐的时候,实在市场上还存在其余一个著名的操作系统Linux。Linux看着Window的IE浏览器非常眼红,于是寻思着也开拓一款基于Linux的浏览器。
大神便是大神,开拓浏览器便是小菜一碟!
成功往后,Linux大神们一样不能免俗,要为自己的孩子起一个响亮且霸气的名字。
前有Moziila(哥斯拉),后有IE(探索者),那我们…..嗯,就叫:Konqueror(Conqueror的变体,低调低调)征服者吧!
(666666)。
但是,Konqueror利用的是KHTML排版引擎,失落去了先发上风。以是,Konqueror也碰着了和IE类似的问题:开拓者们只认UserAgent里面带有Gecko的浏览器,不带就休想得到带有良好排版的页面!
小Konqueror非常无奈,万分纠结之下,做出了一个又骚又贱但是又特殊萌的操作,把自己的UserAgent写成:Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)。
就这样,伟大的Konqueror为了获取更优质的页面,也不得不耍了点小心机。从此,(KHTML,like Gecko) 与IE的Mozilla一样成了一道抹不去的印记。
七、魑魅魍魉,群魔乱舞!
发展到这,你以为就结束了吗?天真!
在互联网这个狂热的天下,只有你想不到,没有你做不到!
脑洞大开的Opera以为IE和Konqueror的做法真的太棒了,甚得吾心!
那咱也不能示弱啊:既然有这么多可以选择的UserAgent(马甲),那我们是不是可以想变成谁就变成谁?!
(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.51Opera/9.51 (Windows NT 5.1; U; en)。第一个是IE,第二个是火狐,第三个才是自己,芭芭拉小魔仙,你想变谁就变谁!
与此同时,在科技的贵圈里,怎么能少得了我大Apple?!
苹果公司依赖“自己的”WebKit,开拓出Safari,并将UserAgent命名为:Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5。
诶?!
仔细一看,这不对啊,AppleWebKit不是苹果公司自己的吗,为啥还会带有(KHTML, like Gecko)?!
苹果邪魅一笑:呵呵,大惊小怪,由于我们的内核Webkit排版引擎的核心叫WebCore,而WebCore是KHTML衍生而来的。也便是说,WebCore是KHTML的儿子,子承父业,苹果公司只能在UserAgent加上 (KHTML, like Gecko) 。
在加倍混乱的浏览器贵圈里,谷歌也不甘寂寞,跳出来大声宣告:我大谷歌也开拓了一款浏览器,它叫Chrome!
而Chrome设定的UserAgent为: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。
Safari一看:卧槽,从未见过如此厚颜无耻之徒!
你怎么也在后面写有Safari?
Chrome呵呵一笑,你懂的——原来Chrome浏览器的内核也是Webkit。
以是,末了让我们来顺一下:
Chrome希望得到Safari的页面,以是伪装成了Safari;而Safari的内核是WebKit引擎,而WebKit又是KHTML的儿子;KHTML又不得不易容成Gecko;而由于IE的骚操作,浏览器又都流传宣传自己是Mozilla……至此,现在的浏览器,你随便打开一个,查看他们的UserAgent,都会创造或多或少带有这些印记。
大家现在该当明白浏览器中那长长的UserAgent是怎么来的了吧。
作者:Jarvan;"大众年夜众号:产品叨比叨
本文由 @Jarvan 原创发布于大家都是产品经理。未经容许,禁止转载
题图来自Unsplash,基于CC0协议