作者:Litten

原文链接:http://litten.me/2014/09/26/history-of-browser-useragent/

某天,我做一个小项目,需要判断一下浏览器类型。简单的呀。

控制台敲下:navigator.userAgent

浏览器回应:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36

天,这串是啥?你怎么连话都说不清楚?

我对 userAgent 并不陌生,但明明一个单词就可以说清楚的事情,却是这么掏心掏肺的回答。怪可怜的,一定有冤情。

后来我查阅了很多资料,发现历史非常的精彩。

大事年表

1990年: Nexus (WorldWideWeb) 诞生

1993年1月23日:Mosaic 诞生

1994年12月:Netscape  (Mozilla) 诞生

1995年4月:Opera 诞生

1995年8月16日:Internet Explorer 诞生

2002年9月23日:Firefox 诞生

2003年1月7日:Safari 诞生

2008年9月2日:Chrome 诞生

盘古开天地

很久很久之前,上古大神 Berners-Lee 发明了 WorldWideWeb ,即万维网。同时,李大神也发明了第一款浏览器。真是具有跨时代意义的工具呀,好伟大呀,人们在想,叫什么好呢?

但大神就是大神,大神内心的想法又岂是尔等凡人能够肆意揣摩?

万万没想到,李大神说,我这浏览器,也叫 WorldWideWeb!不行么?

行行行。

虽然李大神起名字这么拽,但他后来发觉,还是得赋予一点承上启下的历史意义,就改名成 “Nexus” 。值得注意的是,这浏览器,居然是可以兼容 Unix 跟 Microsoft DOS 的。它在当时流行的各种电脑上跑得飞起,应用也越来越广,被称为“杀手级应用”。杀手级…你们看互联网一开始就是这么的腥风血雨。

但这个浏览器,还不支持图片的显示,这是出现 UserAgent 的导火索。

唐尧虞舜

93年,伊利诺大学的 NCSA 组织认为,浏览器无图无真相,这不好。因而他们发明了第一款可显示图片的浏览器。

真是具有跨时代意义的工具呀,好伟大呀,人们在想,叫什么好呢?

但大神就是大神,大神就是连起名字都让你惊心动魄。

NCSA 组织说,它能显示图片,偏偏我们就要叫它“马赛克 (Mosaic) ”!不行么?

行行行。

但有人就问了,Nexus 不显示图片,Mosaic 能显示,你们让 html 提供者怎么写代码?你们是不是想逼死选择困难症患者?有没有考虑过天秤座的感受?

因而 UserAgent 就诞生了。Mosaic 将自己标志为 NCSA_Mosaic/2.0  (Windows 3.1) ,大家该怎么写代码就怎么写,但请求会带上这个信息,服务器就知道该不该返回能显示图片的 html 。UserAgent 君,出生时跟我们设想的一样简单,仅仅标明了自己是什么浏览器,在什么系统运行,以及各自的版本号。

新旧浏览器们像彬彬有礼的君王,商议和让位是为了更好的繁荣。但风雨欲来。

楚汉争霸

像刘邦一样,走出来一个搅局的小流氓。当然他还是很有志向的,他的目标,就是战胜霸主 Mosaic 。后来,他还真的做到了。

如今,所有现代浏览器的 UserAgent 里都有它的标志,就像汉朝之后,我们都称为“汉”人。一群很有天赋的程序员,一起缔造了它的辉煌。

真是具有跨时代意义的工具呀,好伟大呀,人们在想,它叫什么呢?

但大神就是大神,大神就是让你永远也猜不到他们想了个什么名字。

大神们说,叫 Mozilla ,不行么?

行。但什么意思呢?

含义有二。其一,哥斯拉 (Godzilla) 谐音,诚然是一头野心勃勃的怪兽;其二,“Mosaic Killa” 之意,Killa 是俚语中 Killer 的拼法,即“马赛克的终结者”,赤裸裸的挑战。

惊呆了的 Mosaic 小心翼翼的念着 Mozilla 这发音:“Mo…摸咋了?”勃然大怒,“摸你妹!”

鉴于 Mosaic 当时的权势,Mozilla 改名成 Netscape Navigator (网景航海家)。小怪兽突然变成有点文艺小清新的名字,郁闷得很,但内心的血液沸腾着。虽然叫大名叫网景,但它把 UserAgent 偷偷设置成 Mozilla/1.0 (Win3.1)。还是摸咋了?咬我?

宋元之战

很快,NetScape 战胜了 Mosaic ,成为了新的霸主,因为其更优的展示。

NetScape 最先支持了 html 框架显示,就是简单的 table 布局,内外边距之类,仅仅这点就将 Mosaic 抛诸身后。

区别这两个浏览器,还是用的 UserAgent 。如果是 UserAgent 里含有 “Mozilla” 字样,那就发送支持框架的页面,否则,就发送不含框架的页面。

NetScape 帝国日益庞大,歌舞升平,一切风平浪静,直到微软的铁骑挥军南下。

微软发布了一款跟系统强绑定的浏览器,真是具有跨时代意义的工具呀,好伟大呀,人们在想,它叫什么呢?

不用想了,就是 IE 。这命名也相当简单粗暴,Internet Explorer,直接把这工具的用途拍在你脸上。连说明书都可以免了。

IE 也是支持 html 标准框架的,但由于前面的历史原因,人们只会给 UserAgent 里含有 “Mozilla” 字样的浏览器发送含框架的页面。但这点小事能难倒我大微软?IE 呵呵一笑,把自己的 UserAgent 改成 Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)。看,我这里也有 “Mozilla” 字样,也能收到含框架的页面了!

后面的故事我们也知道了,IE 把 NetScape 干掉了。但它的身体上,却永远的烙上了 “Mozilla” 的印记。

康乾盛世

看过奥特曼的都知道,怪兽被打败了会再回来。别忘了 NetScape 曾拥有一批大神们,失败后,他们围绕着浏览器排版引擎 Gecko (壁虎)成立了非正式组织 Mozilla 。小怪兽再次出发。大神们发明了另一款优秀的浏览器,它在插件拓展和开发调试领域做出的贡献,绝对可以载入互联网历史。

真是具有跨时代意义的工具呀,好伟大呀,人们在想,它叫什么呢?

但大神就是大神,大神就是即使你知道了 Mozilla 的命名都是野兽,却还是猜不到是什么。

Mozilla 说,我们浴火重生,叫 Phoenix (凤凰)!不行么?

真不行。

刚推出就被人告了,原来已经有一家公司叫做“凤凰科技”。

Mozilla 瀑布汗,改名叫 Firebird (火鸟)!还不行么?

我们得原谅一下他们的取名,虽然现在看来满满的山寨感,可放在那个时代,Firebird 这名字很炫酷。就像你当初的 QQ 昵称叫赤炎天使感觉依然良好一样。

但是,他们发现,业内有个数据库系统,也叫的 Firebird … 泪流满面的 Mozilla 感慨重生好难呀。最后才决定叫 Firefox(火狐)。

基于 Gecko 引擎的 Firefox 非常优秀,为了告诉大家,我使用了这个引擎,它标志自己的UserAgent 为Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0。

这时候的 UserAgent ,虽然长了点,但它并不混乱,准确的标明了系统,排版引擎,浏览器名称等信息。虽然IE 这时已经占有了很大的市场份额,但基本停步不前;而 Mozilla 经过一段时间的修生养息,Firefox 在业内广受好评,得到了快速的发展。

时值 2003 年,web2.0 的浪潮前夕,浏览器的发展达到了空前的盛世。

然而所谓否极泰来,盛极则衰。涅槃的 Firefox 迎来盛世,却又恰恰由于盛世,决定了UserAgent 纠结的命运。

end

LeanCloud,领先的 BaaS 提供商,为移动开发提供强有力的后端支持。更多内容请关注「LeanCloud通讯」

「福利 」

推荐朋友使用我们的服务,您将获得推荐用户全年消费额的10% 做为奖励 ~

首先需要新注册一个 LeanCloud Affiliate 账号,获取专有推荐链接,通过链接邀请好友注册,如果口头推荐无法返现哦……

点击下方「阅读原文」直接访问 LeanCloud Affiliate 网站

https://a.leancloud.cn/

↓↓↓

浏览器野史 UserAgent 列传(上)相关推荐

  1. 浏览器野史 UserAgent列传(上)

    某天,我做一个小项目,需要判断一下浏览器类型.简单的呀. 控制台敲下:navigator.userAgent 浏览器回应:Mozilla/5.0 (Windows NT 6.1; WOW64) App ...

  2. 浏览器野史 UserAgent 列传(下)

    原文链接:http://litten.me/2014/10/05/history-of-browser-useragent2/ 师夷长技 前面说到,微软靠 Windows 系统捆绑IE销售.而 Win ...

  3. 浏览器野史 UserAgent列传(下)

    前篇<浏览器野史 UserAgent列传(上)> 六.师夷长技 前面说到,微软靠Windows系统捆绑IE销售.而Windows自然也有它的对手,Linux.一个技术快速发展的时代,系统的 ...

  4. 览器野史 UserAgent列传

    某天,我做一个小项目,需要判断一下浏览器类型.简单的呀. 控制台敲下:navigator.userAgent 浏览器回应:Mozilla/5.0 (Windows NT 6.1; WOW64) App ...

  5. Firefox浏览器介绍一下电脑上wap网站的方法(Opera也可以)更改User-Agent信息实现电脑上wap网

    http://crazyfeng.com/firefox-useragent-wap.html 有时我们需要进行一些特殊应用,而这些应用又必需使用手机浏览器,如果使用电脑上的浏览器就会自动跳转,无法打 ...

  6. 各种浏览器的userAgent

    各浏览器的userAgent很乱,具体可参看cnbeta上文章译稿:UserAgent的历史变迁. IE   而IE各个版本典型的userAgent如下: Mozilla/4.0 (compatibl ...

  7. Web开发兼容性系列文章(一):不同设备浏览器的userAgent值大全

    Web开发兼容性系列文章(一):不同设备浏览器的userAgent值大全 Posted on 2011-07-22 12:37 随它去吧 阅读(1388) 评论(11) 编辑 收藏 http://ww ...

  8. 收集几个移动平台浏览器的User-Agent

    转自:http://luckerme.com/archives/1011.html 之前介绍的 更简洁的方式修改Chrome的User Agent,轻松体验移动版网络这种简洁的方法好像只适用于Chro ...

  9. JS兼容各个浏览器的本地图片上传即时预览效果

    JS兼容各个浏览器的本地图片上传即时预览效果 很早以前 在工作曾经碰到这么一个需求,当时也是纠结了很久,也是google了很久,没有碰到合适的demo,今天特意研究了下这方面的的问题,所以也就做了个简 ...

最新文章

  1. Oracle DMP 操作笔记之根据DMP逆向推导出导出的表空间名称
  2. 谷歌浏览器删除相同重复无效书签
  3. springboot~Compiler时开启插件的注解功能
  4. linux每天进步一点点-7月22日
  5. php中的getdate+函数,PHP中的getdate()函数
  6. mysql weindow 安装_windows下怎么安装mysql
  7. linux 搭建cloudreve win映射网络驱动器WebDav
  8. 【NCRE】——Winform窗体控件随窗体大小而变化
  9. 机器视觉入门知识总结
  10. 手机投屏到电脑完美教程,安卓和苹果用户均可使用
  11. 如何把握银行信息科技风险管理的“度”?
  12. C3之text属性的补充
  13. python模拟登录163邮箱_使用python模拟登录网易邮箱网站
  14. 常用颜色的RGB值及中英文名称
  15. 【操作系统】HRT任务和SRT任务(实时系统中的硬实时系统和软实时系统)
  16. zabbix如何自定义一个监控项对web网站进行存活监控和报警?
  17. 用C语言实现推箱子小游戏基础程序
  18. 危机管理应遵循哪些原则?
  19. 孙子定理(中国剩余定理)
  20. outlook服务器无法搜索邮件,outlook2010无法搜索解决方法

热门文章

  1. [Telink][TLSR8251] [泰凌微] DTM测试教程
  2. DIYGW-UI-PHP是一款基于thinkphp framework和 element admin开发而成的前后端分离系统
  3. C#根据工作经验来谈谈面向对象
  4. 【PID优化】基于蝗虫算法PID控制器优化设计含Matlab源码
  5. java-php-python-springboo垃圾分类网站计算机毕业设计
  6. 【svn】 如何在Linux服务器上添加svn账户的教程
  7. 今天那个服务器有无限火力,无限火力即将登陆,测试服已出,这次的无限火力有什么不一样?...
  8. 高校房产管理平台架构及安全性需求分析
  9. [面试]-- Hive面试问题
  10. 艾美捷胆固醇肉豆蔻酸酯说明书和相关研究