首页/网络/协议速查/User-Agent 客户端标识
HTTP 头与缓存70 条

User-Agent 客户端标识

标识发起请求的客户端软件(浏览器/爬虫/SDK/脚本),用于统计、兼容适配与风控。

协议速查网络更新于 2026-10-13

User-Agent 是什么

User-Agent 是客户端在请求里的自我描述:软件名称、版本、操作系统与渲染内核,格式约定为「产品/版本」后跟注释。它最初用于内容适配与访问统计,如今更多服务于兼容分支、灰度分流与风控画像。因为完全由客户端填写,它只能作为参考信号,不能作为安全边界。

基本信息

名称User-Agent(常缩写为 UA)
作用标识客户端类型、版本与平台
规范RFC 9110 §10.1.5
典型形态浏览器一串 Mozilla/5.0 …;命令行 curl/8.5.0;SDK python-requests/2.32
现状Chrome 等已冻结并按需精简 UA,逐步转向 UA-CH 客户端提示

常见 UA 识别要点

客户端典型片段识别要点
Chrome/EdgeMozilla/5.0 … Chrome/131.0 Safari/537.36同内核互认,需靠 Edg/ 等标记区分
Safari… Version/17.0 Safari/605.1.15不含 Chrome 段
curlcurl/8.5.0基本是脚本或健康检查
爬虫自定义名称 + 站点 URL解析与否看 robots 与访问频率约定
App WebView内置浏览器 + 应用自定义标记常用于兼容分支与灰度放量

观察与自定义

观察与自定义
curl -sI https://www.example.com/ -A 'MyBot/1.0 (+https://my.site/bot)'   # 规范的自定义 UA
curl -sv https://www.example.com/ 2>&1 | grep -i '^> user-agent'          # 看默认发出的 UA
nginx -T | grep -i user_agent                                             # 看网关是否存在 UA 分流规则
awk -F'"' '{print $6}' access.log | sort | uniq -c | sort -rn | head      # 统计 UA 分布
不要用 UA 做权限或安全决策:任何脚本一行命令就能伪造。确需区分客户端时,应结合 TLS 指纹、行为特征与验证码等手段。

服务端该怎么用

  • 用于展示与统计:按 UA 聚合客户端分布,判断需要支持哪些浏览器
  • 兼容分支以能力探测为主、UA 判断为辅,减少误判带来的功能缺失
  • 爬虫识别结合反向 DNS 校验与访问频率,而不是只匹配字符串
  • 灰度分流必须保留默认分支,遇到未识别客户端要有兜底行为

边界与风险

  • 同内核浏览器 UA 高度相似,难以精确区分版本与功能支持
  • UA 可随意伪造,把它当风控唯一依据等于没有风控
  • 浏览器正在冻结与精简 UA,依赖细节字符串的规则会逐渐失效
  • UA 里的自定义标记可能随客户端版本被移除,不能当作稳定契约

易错点

  • 用正则无条件信任 UA 里的版本号,遇到浏览器精简 UA(把平台版本冻结为固定值)会直接误判客户端能力
  • 把用户标识或会话信息塞进 UA,会随访问日志与第三方统计一起扩散,构成隐私泄漏
  • UA 过长或含换行符会被网关拦截,这类特征同时也常被风控标记为可疑请求
  • 依赖 UA 做灰度或分流却不设兜底分支,遇到未识别的客户端就功能缺失或报错

数据来源与参考

  • RFC 9110 §10.1.5 User-Agent
  • W3C UA Client Hints(UA-CH)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌