
1. 浏览器UserAgent全面解析手册刚入行那会儿调试移动端页面时总遇到各种诡异问题明明Chrome模拟器显示正常真机上却布局错乱。后来才发现是UserAgent嗅探导致的兼容性问题从此养成了收集整理各平台UA字符串的习惯。这份手册汇集了我六年跨端开发积累的完整UA数据集涵盖桌面/移动端37款主流浏览器附带版本识别技巧和实战应用场景。2. 核心概念与工作机制2.1 UserAgent本质解析UserAgent字符串是浏览器在HTTP请求头中声明的身份标识格式通常为Mozilla/5.0 (平台信息) 引擎/版本 浏览器/版本比如Chrome 120的典型UAMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36其中包含三个关键信息兼容性声明Mozilla/5.0历史遗留的Netscape兼容标识平台信息括号内操作系统、CPU架构等环境数据渲染引擎AppleWebKit实际负责页面渲染的核心组件2.2 现代浏览器的UA构造规律当前主流浏览器普遍采用四段式结构Mozilla兼容头平台描述含操作系统、设备类型引擎信息WebKit/Gecko等浏览器品牌及版本号注意移动端UA会额外包含设备型号如iPhone12,3、蜂窝网络信息等字段3. 桌面浏览器UA大全3.1 Windows平台浏览器典型UA字符串Chrome 120Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (...) Chrome/120.0.0.0 Safari/537.36Edge 119Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (...) Edg/119.0.0.0Firefox 121Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0Opera 105Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (...) OPR/105.0.0.0版本识别技巧Chrome/Edge版本号在字符串末尾Firefox的rv字段表示Gecko引擎版本Opera 15版本采用Chromium内核UA结构与Chrome相似3.2 macOS平台浏览器典型UA字符串Safari 16.4Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (...) Version/16.4 Safari/605.1.15Chrome 120Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (...) Chrome/120.0.0.0 Safari/537.36特殊字段说明Mac OS X 10_15_7表示macOS Catalina 10.15.7Version/16.4是Safari特有的版本标识4. 移动端UA全收录4.1 iOS浏览器设备/浏览器典型UA字符串iPhone SafariMozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (...) Version/16.0 Mobile/15E148 Safari/604.1Chrome on iPadMozilla/5.0 (iPad; CPU OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (...) CriOS/120.0.0.0 Mobile/15E148 Safari/604.1关键特征CPU iPhone OS字段实际表示iOS版本CriOS是iOS版Chrome的标识Mobile/15E148是设备固件标识符4.2 Android浏览器浏览器/设备典型UA字符串Chrome 120Mozilla/5.0 (Linux; Android 13; SM-G998B) AppleWebKit/537.36 (...) Chrome/120.0.0.0 Mobile Safari/537.36MIUI BrowserMozilla/5.0 (Linux; Android 13; 2107119DC) AppleWebKit/537.36 (...) Version/4.0 Chrome/120.0.0.0 Mobile Safari/537.36设备识别要点SM-G998B对应三星Galaxy S21 Ultra2107119DC是小米11 Ultra的设备代号MIUI Browser会保留Chrome版本号5. 特殊场景UA处理方案5.1 微信内置浏览器移动端开发最常遇到的特殊UAMozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (...) Mobile/15E148 MicroMessenger/8.0.42(0x18002a2a)识别关键点包含MicroMessenger字段版本号采用16进制编码0x18002a2a5.2 搜索引擎爬虫UA常见爬虫标识示例Googlebot/2.1 (http://www.google.com/bot.html) Baiduspider/2.0 (http://www.baidu.com/search/spider.html)6. 实战应用技巧6.1 服务端UA解析方案Node.js示例代码function parseUA(ua) { const isMobile /Mobile|Android|iPhone|iPad/i.test(ua) const chromeVersion ua.match(/Chrome\/(\d)/)?.[1] return { platform: ua.match(/\((.*?)\)/)[1], engine: ua.match(/(AppleWebKit|Gecko)\/(\d)/), browser: { name: ua.match(/(Chrome|Firefox|Safari|Edg)\/(\d)/)?.[1], version: ua.match(/(Chrome|Firefox|Safari|Edg)\/(\d)/)?.[2] }, isMobile } }6.2 常见UA检测误区过度依赖版本号某些厂商会伪装UA版本如国产浏览器声明Chrome/120实际内核版本较低忽略locale信息部分UA包含语言区域zh-CN可能影响内容协商移动端误判iPad Pro的UA可能不包含Mobile标识经验优先检测功能支持而非UA嗅探必要时结合navigator.userAgentData APIChrome 1017. 最新UA变化趋势7.1 Chrome的User-Agent Reduction计划自Chrome 101起逐步简化UA字符串移除Android版本号固定Windows NT 10.0统一macOS版本号为10_15_77.2 替代方案User-Agent Client Hints现代浏览器推荐使用新的客户端提示APInavigator.userAgentData.getHighEntropyValues([ architecture, model, platformVersion ]).then(console.log)8. 完整UA数据集下载整理好的JSON数据集包含127个桌面浏览器UA涵盖Windows/macOS/Linux89个移动端UAiOS/Android/微信/QQ等23个爬虫UA标识各浏览器历史版本UA变化记录因篇幅限制完整数据集可通过技术社区获取