当前位置:首页 > 杂七杂八 > 正文

为什么浏览器User-agent总是有Mozilla字样—User-agent String里的历史故事

文章开头不得不吐槽一下自己的作死行为,小幻前几天分享了一下wordpress暴力破解的方法,结果今天无聊发现自己却中枪了,被人开始暴力开坑,现在人什么品行啊 伤心ing .这叫吃水打死挖井人吗?

然后,又针对ajax评论增加了一个计算的验证码(有点弱智),然后发现…本站的手机端居然不能评论,以为增加验证码的问题,还回滚了一下,备份,结果无救…悲催的简单重写了一下comment.

这几天还集成了一下各种提醒,隔几天就会发出来哦~(部分功能扣自wordpress内核)

好了,反正这几天一直很不愉快,知乎上看到一篇文章,讲的各大互联网公司的黑历史,特转载下来了.

幻杀博客

正文

你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样?

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36
Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)

故事还得从头说起,最初的主角叫NCSA Mosaic,简称Mosaic(马赛克),是1992年末位于伊利诺伊大学厄巴纳-香槟分校的国家超级计算机应用中心(National Center for Supercomputing Applications,简称NCSA)开发,并于1993年发布的一款浏览器。它自称“NCSA_Mosaic/2.0(Windows 3.1)”,Mosaic可以同时展示文字和图片,从此浏览器变得有趣多了。

然而很快就出现了另一个浏览器,这就是著名的Mozilla,中文名称摩斯拉。一说 Mozilla = Mosaic + Killer,意为Mosaic杀手,也有说法是 Mozilla = Mosaic & Godzilla,意为马赛克和哥斯拉,而Mozilla最初的吉祥物是只绿色大蜥蜴,后来更改为红色暴龙,跟哥斯拉长得一样。

但Mosaic对此非常不高兴,于是后来Mozilla更名为Netscape,也就是网景。Netscape自称“Mozilla/1.0(Win3.1)”,事情开始变得更加有趣。网景支持框架(frame),由于大家的喜欢框架变得流行起来,但是Mosaic不支持框架,于是网站管理员探测user agent,对Mozilla浏览器发送含有框架的页面,对非Mozilla浏览器发送没有框架的页面。

后来网景拿微软寻开心,称微软的Windows是“没有调试过的硬件驱动程序”。微软很生气,后果很严重。此后微软开发了自己的浏览器,这就是Internet Explorer,并希望它可以成为Netscape Killer。IE同样支持框架,但它不是Mozilla,所以它总是收不到含有框架的页面。微软很郁闷很快就沉不住气了,它不想等到所有的网站管理员都了解IE并且给IE发送含有框架的页面,它选择宣布IE是兼容Mozilla,并且模仿Netscape称IE为“Mozilla/1.22(compatible; MSIE 2.0; Windows 95)”,于是IE可以收到含有框架的页面了,所有微软的人都嗨皮了,但是网站管理员开始晕了。

因为微软将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完全跟不上它,因此user agent探测规则变了,使用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
标签:
上一篇: 下一篇:

32 条评论

评论加载中...
  1. Very quickly this web page will be famous
    amid all blog viewers, due to it’s nice articles

    2018年7月26日 21:09 评论
  2. 19楼
    Philippines 谷歌浏览器 Windows 7
    Order  

    Excellent article! We will be linking to this particularly great content on our site.

    Keep up the great writing.

    2018年7月22日 05:17 评论
  3. 18楼
    Philippines 火狐浏览器5.0 Windows 7
    hcg24  

    Thanks for the auspicious writeup. It in fact used to be a enjoyment account it.

    Glance advanced to far added agreeable from you!
    However, how can we communicate?

    2018年7月19日 20:21 评论
  4. 幸运飞艇、幸运飞艇开奖直播、幸运飞艇投注、
    幸运飞艇投注网站、幸运飞艇官网、幸运飞艇开奖、
    幸运飞艇直播、幸运飞艇开奖直播|投注官方网站

    2018年7月14日 17:30 评论
  5. hi!,І like your writing very much! proportion we communicate
    extrɑ about your article on AOL? I requіre an expert
    in this arеa to resoⅼve my problem. May be that’s you!
    Tɑking ɑ look ahead to peer you.

    2018年7月12日 15:17 评论
  6. Hello! I know this is kind of off-topic however I needed to ask.
    Does managing a well-established website like yours require a massive amount work?
    I am brand new to blogging but I do write in my journal every day.

    I’d like to start a blog so I can share my own experience and thoughts online.
    Please let me know if you have any kind of recommendations or tips for brand new aspiring blog
    owners. Appreciate it!

    2018年7月10日 16:47 评论
  7. 14楼
    Philippines 火狐浏览器5.0 Windows 7
    HCG24.com  

    I don’t even understand how I finished up right here,
    however I thought this submit was great. I don’t understand who you’re however definitely you’re going to a well-known blogger for those
    who are not already. Cheers!

    2018年7月9日 16:39 评论
  8. See the Guide for Adult Function Fashions Program.

    2018年7月9日 11:31 评论
  9. I wɑs wondering if уοu ever considereԁ changing the layout of yoᥙr site?
    Іtѕ very ѡell written; I love what youve got to say.
    Βut mayƄe үⲟu could а little mоre in the
    way οf cοntent so people ϲould connect wіth it better.

    Youve ɡot an awful lot օf text f᧐r only hɑving one or two images.
    Mаybe y᧐u could space it oսt better?

    2018年7月6日 05:44 评论
  10. 11楼
    Philippines 谷歌浏览器 Windows 7
    hcg24  

    wonderful issues altogether, you just received a logo new reader.
    What might you recommend in regards to your submit that you simply made
    some days ago? Any certain?

    2018年7月4日 20:38 评论

发表评论

不理你。不要啊!吃饭。吃惊。吃西瓜。飞吻!恭喜!Hi纠结!膜拜!OK抛媚眼。泡泡糖。抛钱。忍!生闷气!调皮。偷看。委屈。献花。疑问?抓狂!

小提示:Ctrl+Enter快速提交助您一臂之力~
加载中……