首页/网络/协议速查/505 HTTP Version Not Supported
HTTP 方法与状态码91 条

505 HTTP Version Not Supported

服务器不支持请求使用的 HTTP 协议版本(如收到 HTTP/0.9 或实验版本)。

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

505 是什么

505 HTTP Version Not Supported 表示服务器不支持请求行里声明的 HTTP 版本(RFC 9110 §15.6.6)。它几乎不会由正常浏览器触发:多数情况是压测工具或老客户端使用 HTTP/0.9,或安全扫描器发送畸形版本号(例如 HTTP/9.9)。

基本信息

名称505 HTTP Version Not Supported
类别5xx(服务器无法支持该协议版本)
规范RFC 9110 §15.6.6
常见触发HTTP/0.9 请求、畸形版本号、代理协议不匹配
现状罕见,多为异常实现或扫描流量
日志特征来源集中、请求行异常

典型使用场景

  • 安全扫描告警排查:日志里大量 505 通常是扫描器造成的噪音
  • 老客户端兼容:确认是否在使用 HTTP/0.9 或自定义版本号
  • 网关配置核查:确认对外宣告的协议版本与后端一致
  • 自研服务器:请求行解析必须按规范校验版本
  • 日志聚合:按来源统计 505 分布,快速区分扫描与真实故障
  • 协议升级评估:确认是否仍有客户端使用被淘汰的版本

复现与统计

复现与统计
# 复现:发送一个不支持的版本号
printf 'GET / HTTP/9.9\r\nHost: example.com\r\n\r\n' | nc example.com 80
# → HTTP/1.1 505 HTTP Version Not Supported

# 统计访问日志里的 505 来源(Nginx 默认格式下状态码在第 9 列)
awk '$9==505 {print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

请求行版本与结果

请求行服务器反应说明
HTTP/1.1正常处理当前主流版本
HTTP/1.0正常处理,可能关闭连接老客户端仍在用
HTTP/2不使用请求行由二进制帧承载,明文 h2c 少见
HTTP/9.9 等畸形值返回 505扫描或异常实现
服务器对不支持版本的正确反应是 505,但不少实现为了兼容会直接按 HTTP/1.1 处理,因此不报 505 并不代表协议校验严格。
若线上稳定出现 505 且来源集中,先按扫描流量处理并在 WAF 层拦截,再评估是否要调整日志告警阈值。
HTTP/0.9 请求没有请求头、只有一行 GET,遇到时应直接拒绝,不要尝试继续解析后续内容。
反向代理与后端协商协议版本失败时也可能留下类似记录,排查时先确认是哪一段链路报出的。
客户端库对不支持的版本应明确报错,而不是默默降级到 HTTP/1.0,否则会掩盖配置问题。

易错点

  • 看到 505 就以为服务器故障:它是客户端协议版本问题,服务端功能本身正常
  • 忽略日志聚合,把扫描流量当成业务异常,浪费大量排查时间
  • 自研 HTTP 服务不校验请求行版本,会接受非法输入,埋下解析歧义的安全隐患
  • 用 505 表达其他含义(例如后端不可用)会让排查方向出错,后者应该用 502 或 503
  • 把 WAF 拦下的畸形流量统计进错误率,会污染可用性指标

数据来源与参考

  • RFC 9110 §15.6.6 505

相关工具

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