跳到主要内容
uencoder

如何Parse User Agents

提取 browser, operating system, and device information from User-Agent strings.

问题

你有 User-Agent 字符串和 need 到识别 browser, OS, 和 device 类型.

前置条件

  • Understanding 的 HTTP headers
  • Knowledge 的 User-Agent 格式化

步骤

  1. 1. Understand the User-Agent format

    User-Agent strings contain product tokens separated by spaces, each with a name and optional version. The order and content vary by browser. Modern browsers include compatibility tokens (like Mozilla/5.0) for historical reasons, making parsing complex.

    输入
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/118.0
    输出
    tokens identified
  2. 2. Parse with a UA parser library

    Use a dedicated User-Agent parser rather than regex. UA strings are notoriously inconsistent and full of compatibility tokens. A maintained parser library (like ua-parser) uses pattern databases updated for new browsers and devices.

    输入
    UA string
    输出
    browser: Chrome 118, OS: Windows 10, device: desktop
  3. 3. Use the results appropriately

    Use parsed data for analytics, compatibility decisions, or content negotiation. Be aware that User-Agents can be spoofed. Do not make security decisions based solely on UA parsing. Consider Client Hints as a more structured alternative.

    输入
    parsed UA
    输出
    used for analytics

预期结果

Browser, OS, 和 device 信息 extracted 从 User-Agent 字符串.

常见错误

Parsing with regex misses new browsers
Use a maintained UA parser library with an updated pattern database. Regex-based parsing breaks on new UA formats.
Trusting UA for security decisions
User-Agents are client-controlled and can be spoofed. Never use UA alone for authentication or authorization.

排障指引

  • If parsing returns 'unknown', the UA may be from a bot, app, or new browser. Update the parser database.
  • Client Hints (Sec-CH-UA) provide structured browser data and are more reliable than UA strings.

安全限制

  • User-Agent strings are spoofable. Never rely on them for security. Use feature detection instead of UA sniffing for browser compatibility.

相关工具

参考链接