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变化记录因篇幅限制完整数据集可通过技术社区获取
企业数字化 ERP 产品动态
相关推荐
追踪系统供电保障:适用于主动式RFID标签的纽扣型一次锂电池 01什么是智能物流?智能物流是指利用IT技术提升物流业务效率的一系列举措。通过IoT、AI、大数据、机器人等先进技术,实现配送速度和准确性的提升、仓库管理效率的改善,从而对整个物流流程进行优化。近年来,随着电子商务(… · 2026/9/20 12:14:22
Python+SQLite赛事管理系统开发:从需求分析到数据建模实战 在实际开发中,我们经常需要处理一些非技术性的项目标题或需求描述,这些描述可能来自产品经理、运营同事或用户反馈。它们往往缺乏技术细节,但开发团队需要将其转化为可执行的技术方案。本文将以一个示例项目标题“(S1E5࿰… · 2026/9/1 21:23:08
功能安全咨询公司如何用AI Agent实现知识产品化落地 1. 功能安全咨询行业为什么开始卖AI Agent 功能安全咨询这个行当,过去十几年一直是典型的“人力密集、知识密集、交付周期长”的生意。一家做ISO 26262、IEC 61508合规咨询的公司,核心资产就是那几位懂HARA、懂FMEA、懂安全案例(Safety Case&… · 2026/9/26 9:09:52
Claude Skills全攻略:用SKILL.md给AI代理装上“超能力”,让大模型为你打工 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 9:09:46
Agent时代CLI设计指南:从工具到智能体执行入口 1. 从"CLI-Anything"说起:命令行工具正在经历一场静默革命第一次看到"CLI-Anything"这个说法,我脑子里蹦出来的不是某个具体工具,而是一种趋势判断——命令行界面正在从"运维专属"变成"人人都能用的自动化… · 2026/9/26 9:09:39
基于Simulink的风光储互补微电网建模与仿真分析全流程解析 做风光储微电网仿真,最难的不是把模型搭起来,而是让模型在离网、并网、模式切换时都表现得像真实系统。很多刚接触Simulink的人,第一步就卡在“风光储三种电源怎么接到一条母线上”“MPPT和储能协调到底谁优先”。这篇博文我就把基于Simulink… · 2026/9/26 9:09:33
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46