主流的UA

以前研发浏览器的时候都没有想到浏览器的UA还有一段有趣历史的,直到今天处理一个UA的问题,才得于让自己有机会切换到浏览器使用者的视角去查找资料与文档,去重新认识它。以下 UA copy自User-Agent Switcherfor Chrome是插件的默认UA

浏览器 User-Agent
Internet Explorer 10 Mozilla/5.0 (MSIE 10.0; Windows NT 6.1; Trident/5.0)
Internet Explorer 6 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; WOW64; Trident/4.0; SLCC1)
iPhone 6 Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25
Android KitKat Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36
Windows Phone 8 Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)
Windows Firefox 33 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20120101 Firefox/33.0
Opera 12.14 Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14
Mac Safari 7 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A

如上所示,一个很明显又有趣的现象是IE,Safari等大多当我浏览器的的UA都包含有Mozilla字样的!

UA的规范

有趣有历史的浏览器UA(user-agent)-编程知识网

有趣有历史的浏览器UA(user-agent)-编程知识网

UA的“进化”

这篇译文翻译得很赞[浏览器user-agent简史推荐大家阅读 。
原汁原味的在这里History of the browser user-agent string
浏览器UA的进化史的一句话总结是

user-agent字符串变得越来越复杂,也越来越让人摸不着头脑,只因为各个浏览器在争相“佯装”对方。

为什么要“佯装”,目的还是希望从服务器获取到最合适的页面,给用户更好的浏览体验吧!不足之处是网站开发者要面对一堆形形色色的UA。

参考资源

  • History of the browser user-agent string
  • 浏览器user-agent简史
  • 浏览器 user-agent 字符串的故事
  • rfc2616有关UA的定义