Skip to main content
CheckTown
开发工具

User Agent 解析:如何读取浏览器与设备信息

发布于 阅读约 5 分钟
本文目录

什么是用户代理字符串?

用户代理字符串是浏览器和 HTTP 客户端在每次请求时都会发送的一段文本标识符。它会告诉服务器发起请求的是哪种浏览器、操作系统和设备。例如,Windows 上的 Chrome 会发送一个包含浏览器版本、渲染引擎和操作系统版本的字符串。

用户代理字符串遵循一种定义宽松的格式,并且随着时间的推移变得愈发复杂。现代字符串往往包含来自旧版浏览器的兼容性标记,使其难以手动解析。专门的解析器则能从这些杂乱的文本中提取出结构化数据。

用户代理解析的工作原理

用户代理解析器通过模式匹配和已知的特征库,将原始字符串拆解为结构化的组成部分。得到的结果是一个包含浏览器、操作系统、设备和引擎详情的清晰对象。

  • 浏览器检测——通过匹配 Chrome/、Firefox/ 或 Safari/ 等已知标记,识别浏览器名称和版本
  • 操作系统识别——从 Windows NT 10.0 或 Mac OS X 等平台标记中提取操作系统及其版本
  • 设备分类——根据设备特有的标识判断客户端是台式机、手机、平板还是机器人

免费试用 —— 无需注册

解析用户代理字符串 →

何时使用用户代理解析

用户代理数据能帮助你了解受众,并使你的应用适配不同的环境。

  • 数据分析——追踪用户群体中浏览器和操作系统的分布情况,以便确定测试和支持的优先级
  • 自适应内容分发——根据检测到的设备类型或浏览器能力,分发经过优化的资源(图片、脚本)
  • 机器人检测——通过用户代理特征识别爬虫、抓取程序和自动化工具,以施加速率限制或分发不同的内容

常见问题

用户代理字符串可以被伪造吗?

可以。任何 HTTP 客户端都能发送任意的用户代理字符串。浏览器扩展和开发者工具让伪造变得轻而易举。因此,用户代理数据应当用于数据分析和渐进增强,而不应用于安全或访问控制的决策。

什么是客户端提示(Client Hints),它会取代用户代理吗?

客户端提示(Sec-CH-UA 请求头)是由基于 Chromium 的浏览器提出的一种更新、更结构化的替代方案。它们在各个独立的请求头中提供浏览器、平台和设备数据。不过,其采用情况尚不完善——Firefox 和 Safari 的支持有限——因此用户代理字符串仍是通用的后备方案。

如何可靠地检测移动设备?

最可靠的方法是将用户代理解析与特性检测相结合。解析 UA 字符串中的移动关键词(Mobile、Android、iPhone),同时通过 JavaScript 检查屏幕尺寸或触摸支持。任何一种方法单独使用都不能做到 100% 准确,但二者结合就能覆盖绝大多数情况。

相关工具