熟悉前端设计、开发以及测试的朋友,工作中应该经常在 request headers 中能够发现 user-agent 都是以“Mozilla”开头的一串长字符串。 //目前大部分浏览器的 UA 字符串应该是Mozilla/5.0(……)。
比如,此刻我使用的 Firefox 浏览器的默认 user-agent 字符串为:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0)

P1.火狐浏览器 user-agent 默认字符串
按照字面上的理解,“Mozilla”应该是代表火狐浏览器,那为什么当前主流的 PC /移动端浏览器,如 Chrome、Edge、IE、Opera、Safari 等,甚至微信小程序 Web 页面都使用 Mozilla/5.0(……) 作为 user-agent 呢?要解释这个问题,就不得不提及浏览器的发展史。
最早流行的浏览器是 NCSA Mosaic,简称 Mosaic,由美国伊利诺伊大学厄巴纳-香槟分校的国家超级计算机应用中心/ NCSA(National Center for Supercomputing Applications,简称 NCSA ) 组织在 1993 年所发表,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器。在 NCSA Mosaic 软件中,它在请求头中称自己为:”NCSA_Mosaic/2.0 (Windows 3.1)”。这是 user-agent 的最早的雏形。

P2.NCSA Mosaic 浏览器界面
在 1994 年,Mosaic 开发团队的中心人物 马克·安德森 单飞出来并在美国加州设立了网景通信公司(Netscape Communications Corporation);而伊利诺伊大学将 Mosaic 相关的技术及版权全部转让给望远镜娱乐公司(Spyglass Entertainment),在 1995 年,微软又向望远镜娱乐公司(Spyglass Entertainment)买下 Mosaic 的授权并以此为基础开发了 Internet Explorer ,从而进军浏览器市场。后来网景公司与微软公司在浏览器领域展开激烈竞争,史称“浏览器大战”。
接着说网景通信公司,因为与 Mosaic 处于竞争关系且与伊利诺伊大学及微软因版权问题闹得非常不愉快,网景通信公司推出浏览器 1.0 正式版并命名为网景导航者(Netscape Navigator),出于恶心竞争对手的目的,在它的请求头中描述自己时称自己为 Mozilla/1.0(win3.1),Mozilla = Mosaic Killer,即 Mosaic 杀手。

P3.网景通信公司发布的 Netscape Navigator 浏览器
在当时,Netscape Navigator 浏览器支持框架(frame),而 Mosaic 不支持,Netscape Navigator 浏览器在用户使用体验上具有一定的领先优势。因此用户代理嗅探(User Agent sniffing)技术应运而生了,网站后台如果在请求头中检测到 Mozilla 标识,就知道用户使用的是 Netscape Navigator 浏览器,就发送框架,如果不是就不发送,俗称“看人下菜碟”。
后来,微软基于 Mosaic 开发出了 IE,尽管 IE 也支持框架,但由于它不是 Mozilla,所以网站并没有向它发送框架。作为后来者,微软为了抢夺网景公司 Netscape 浏览器的市场,并没有耐心等待各大网站修改用户代理嗅探(User Agent sniffing)去支持 IE,而是声称它兼容于 Mozilla,因此 IE 冒充 Netscape 称自己为:
Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)
从而骗过了网站得以收到网站发送的框架。拿到现在来说,微软这样的操作也是相当炸裂的,属实闪瞎人眼了。
“浏览器大战”的结局就不用多说了,由于 IE 强制绑定到遍地都是的 Windows 系统,Netscape 以失败告终。
有了微软 IE 浏览器的天秀操作,为了让用户代理嗅探(User Agent sniffing)更好的给自己提供服务,后面各大操作系统及浏览器就约定俗成般的都声称自己兼容 Mozilla,比如 Linux 上的浏览器 Konqueror 使用的渲染引擎是 KHTM,它在 user-agent 中声称自己为:
Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)
Opera 则提供了选项,让用户想声称哪个浏览器就声称哪个浏览器。
Apple 后来创建了 KHTML 的一个分支 WebKit,称自己为:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5
这就是为什么几乎所有浏览器的用户代理字符串都以 “Mozilla” 为开头的原因了。
附:常用USER_AGENT(PC端、移动设备端、Android 系统下的微信、IOS 系统下的微信 User Agent)
PC端
| 浏览器 | User-agent | |
|---|---|---|
| safari 5.1 – MAC | Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50 |
| safari 5.1 – Windows | Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50 | |
| IE 9.0 | Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; | |
| IE 8.0 | Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0) | |
| IE 7.0 | Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0) | |
| IE 6.0 | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | |
| Firefox 4.0.1 – MAC | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv,2.0.1) Gecko/20100101 Firefox/4.0.1 | |
| Firefox 4.0.1 – Windows | Mozilla/5.0 (Windows NT 6.1; rv,2.0.1) Gecko/20100101 Firefox/4.0.1 | |
| Opera 11.11 – MAC | Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11 | |
| Opera 11.11 – Windows | Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11 | |
| Chrome 17.0 – MAC | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11 | |
| 傲游(Maxthon) | Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0) | |
| 腾讯TT | Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0) | |
| 世界之窗(The World) 2.x | Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) | |
| 世界之窗(The World) 3.x | Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World) | |
| 搜狗浏览器 1.x | Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0) | |
| 360浏览器 | Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE) | |
| Avant | Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser) | |
| Green Browser | Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) |
移动设备端
| 浏览器 | User-agent | |
|---|---|---|
| safari iOS 4.33 – iPhone | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5 |
| safari iOS 4.33 – iPod Touch | Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5 | |
| safari iOS 4.33 – iPad | Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5 | |
| Android N1 | Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 | |
| Android QQ浏览器 For android | MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 | |
| Android Opera Mobile | Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) Presto/2.8.149 Version/11.10 | |
| Android Pad Moto Xoom | Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 | |
| BlackBerry | Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.337 Mobile Safari/534.1+ | |
| WebOS HP Touchpad | Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.0; U; en-US) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/233.70 Safari/534.6 TouchPad/1.0 | |
| Nokia N97 | Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124 | |
| Windows Phone Mango | Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan) | |
| UC无 | UCWEB7.0.2.37/28/999 | |
| UC标准 | NOKIA5700/ UCWEB7.0.2.37/28/999 | |
| UCOpenwave | Openwave/ UCWEB7.0.2.37/28/999 | |
| UC Opera | Mozilla/4.0 (compatible; MSIE 6.0; ) Opera/UCWEB7.0.2.37/28/999 |
Android 系统下的微信
| 浏览器 | User-agent | |
|---|---|---|
| 小米在WIFI | Mozilla/5.0 (Linux; Android 7.1.1; MI 6 Build/NMF26X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/6.2 TBS/043807 Mobile Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/WIFI Language/zh_CN |
| 锤子OD103型号 4G | Mozilla/5.0 (Linux; Android 7.1.1; OD103 Build/NMF26F; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043632 Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/4G Language/zh_CN | |
| 锤子SM919型号 WIFI | Mozilla/5.0 (Linux; Android 6.0.1; SM919 Build/MXB48T; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043632 Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/WIFI Language/zh_CN | |
| VIVO X6S WIFI | Mozilla/5.0 (Linux; Android 5.1.1; vivo X6S A Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043632 Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/WIFI Language/zh_CN | |
| HUAWEI TAG-AL00 4G | Mozilla/5.0 (Linux; Android 5.1; HUAWEI TAG-AL00 Build/HUAWEITAG-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043622 Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/4G Language/zh_CN | |
| 小程序 | Mozilla/5.0 (Linux; Android 7.1.1; MI 6 Build/NMF26X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/6.2 TBS/043807 Mobile Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/4G Language/zh_CN MicroMessenger/6.6.1.1220(0x26060135) NetType/4G Language/zh_CN miniProgram |
IOS IOS 系统下的微信 User Agent
| 浏览器 | User-agent | |
|---|---|---|
| iphone手机OS 9_3_2版本 4G | Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69 MicroMessenger/6.6.1 NetType/4G Language/zh_CN |
| iphone手机OS 11_2_2版本 4G | Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_2 like Mac OS X) AppleWebKit/604.4.7 (KHTML, like Gecko) Mobile/15C202 MicroMessenger/6.6.1 NetType/4G Language/zh_CN | |
| iphone手机OS OS 11_1_1版本 WIFI | Mozilla/5.0 (iPhone; CPU iPhone OS 11_1_1 like Mac OS X) AppleWebKit/604.3.5 (KHTML, like Gecko) Mobile/15B150 MicroMessenger/6.6.1 NetType/WIFI Language/zh_CN | |
| iphoneX WIFI | Mozilla/5.0 (iphone x Build/MXB48T; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043632 Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/WIFI Language/zh_CN |

