由 User-Agent Switcher for Chrome 引发的思考

User-Agent Switcher for Chrome:见名知意,这是一款基于 Chrome 浏览器的插件,它的作用是切换用户代理(User-Agent 或 UA),说得庸俗一些就是伪装、就是骗。

用户代理(User-Agent 或 UA)简史:

时间回溯到1993年,那个时候还可能是一个春天,有这么一款浏览器横空出世,它就是 NCSA Mosaic,简称 Mosaic,据说它是互联网历史上第一个获普遍使用的浏览器,也是互联网历史上很早就能够显示图片的浏览器,虽然现在的我感觉这款古老的浏览器没啥,但是,相对于互联网世界而言,Mosaic 的诞生受到了在当时的那个遥远年代的人们的青睐,它大受欢迎和追捧,可以想像,生活在互联网还处于萌芽时期的人们是很激动的,对待 Mosaic,那应该是配得上锣鼓喧天、鞭炮齐鸣的待遇。同年9月,Mosaic 1.0版运行在了苹果平台和微软平台上,Mosaic 算是点燃互联网热潮的火种之一。

但是,在互联网这个蓬勃发展的世界里,Mosaic 注定是不可能成为人们唯一的宠儿的,于是伴随着互联网快速发展的热潮,历史上著名的网景公司应运而生, 随着 Netscape 浏览器的发布,人们开始逐渐将视野转向了这个新生物,由于 Netscape 浏览器是支持 frame 显示的,这一特性很受欢迎,Netscape 浏览器很快就盖过了 Mosaic 的风头,这种情况让 Mosaic 很不爽,让使用 Mosaic 技术的微软也很不爽,于是历史上有名的浏览器大战开始了,本文主要是想探索一下 User-Agent 的来源,对浏览器大战的故事就不赘述了,网上有很多这样的故事(自己动手,丰衣足食)。

总之,由于 Mosaic 和 Netscape 浏览器在是否支持 frame 这一特性上存在差异,这是导致 User-Agent 嗅探技术(User Agent Sniffing)出现的根源,这一技术旨在:网站根据不同用户代理(User-Agent 或 UA)发送不同内容的页面。例如,网站根据 User-Agent 的描述,给 Mosaic 浏览器发送没有 frame 的页面,给 Netscape 浏览器则发送可包含 frame 的页面。在 HTTP 协议中,User-Agent 被包含在头字段内进行传送,它的内容由特定的字符串构成(User-Agent Switcher for Chrome 插件就是用来修改这个字符串的),该字符串通常包含了其应用程序类型、操作系统、软件供应商……等等。

现在,让我们看看 Chrome、Firefox 浏览器各自的 User-Agent:

  1. Chrome(版本 53.0.2785.116 (64-bit))
    由 User-Agent Switcher for Chrome 引发的思考_第1张图片
  2. Firefox(版本 48.0)
    由 User-Agent Switcher for Chrome 引发的思考_第2张图片
Browsers User-Agent
Chrome Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
Firefox Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0



以 Firefox 浏览器为例,当我们向某个 Web 服务器发送一个请求之后,User-Agent 的相关信息会被包含在请求头字段内传送出去:

由 User-Agent Switcher for Chrome 引发的思考_第3张图片

参考网址:
https://zh.wikipedia.org/wiki/%E7%94%A8%E6%88%B7%E4%BB%A3%E7%90%86
http://webaim.org/blog/user-agent-string-history/

你可能感兴趣的:(由 User-Agent Switcher for Chrome 引发的思考)