拆解 UA 字符串
一条 User-Agent 字符串把 browser · engine · os · device 四个维度拼在一行,格式没有强标准,解析全靠一组「先匹配先赢」的经验规则。下面用 @vega/user-agent 的 parseUserAgent(ua) 当场拆解:上半区解析本机浏览器报出的
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 的指引。