拆解 UA 字符串
一条 User-Agent 字符串把 browser、engine、os、device 四个维度拼在一行,格式没有强标准,解析全靠一组「先匹配先赢」的经验规则。本页用 @vega/user-agent 的 parseUserAgent(ua) 当场拆解。
顺序相关的陷阱有两处:Edge、Opera、Samsung 都带 Chrome/ token,必须排在通用 Chrome 之前;iPad 的 UA 同时含 Mac OS X,故 iOS 与 iPadOS 要排在 macOS 之前。
警示 · UA 字符串正在退场。出于反指纹追踪,现代浏览器逐步冻结与精简 UA 字符串(版本号截断、平台信息归一)。需要精确客户端信息时,优先用结构化的
User-Agent Client Hints(navigator.userAgentData)。本库解析的只是传入的那条 UA 字符串本身,至于这条串可信与否、信息够不够细,取决于来源。
相关链接
- User-Agent · HTTP header developer.mozilla.org UA 请求头的语法与各 token(product / version / comment)的约定。
- Navigator.userAgent developer.mozilla.org 读取当前浏览器 UA 字符串的只读属性,即本机解析的输入来源。
-
User-Agent Client Hints API
developer.mozilla.org
navigator.userAgentData:用结构化字段替代字符串嗅探的现代方案。 - Migrate to User-Agent Client Hints web.dev UA 字符串为何被精简,以及从字符串嗅探迁移到 Client Hints 的指引。