首页/网络/协议速查/501 Not Implemented 未实现
HTTP 方法与状态码91 条

501 Not Implemented 未实现

服务器不支持完成请求所需的功能:不认识该请求方法,或未实现必要特性。

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

501 是什么

501 Not Implemented 表示服务器不支持完成该请求所需的功能:典型情况是它根本不认识请求里用的方法,或者缺少必要的能力。它与 405 的区别在于责任范围——405 说明服务器认识这个方法,只是这个资源不允许用;501 则是服务器整体上没实现这个方法。规范定义在 RFC 9110 第 15.6.2 节。

基本信息

状态码501 Not Implemented
语义服务器不支持该功能或方法
规范RFC 9110 §15.6.2
与 405 区别405 是资源不支持该方法
是否可缓存属于默认可启发式缓存的响应码
常见来源极简静态服务器、老设备的网页管理界面

复现:对只支持基本方法的服务器发新方法

复现:对只支持基本方法的服务器发新方法
curl -si -X PATCH https://legacy.example.com/ -d '{}'
# HTTP/1.1 501 Not Implemented
curl -si -X OPTIONS https://legacy.example.com/ | head -5   # 看是否声明支持的方法

三个易混状态码

状态码含义判断要点
405资源不支持该方法换方法或换资源
501服务器整体不认识该方法换服务或换实现
400请求本身有语法问题检查报文格式

典型使用场景

  • 接入老系统:确认对方支持哪些方法,调整客户端调用方式
  • 排查接口 501:确认是否被网关路由到了能力不足的旧服务
  • 协议合规检查:核对服务端是否正确声明支持的方法集合
  • 灰度上线:新接口误路由时快速识别为配置问题
  • 测试用例设计:把不支持的方法作为边界用例覆盖
如果新接口突然返回 501,优先怀疑路由:请求可能被转发到了那台只支持基本方法的老服务上,而不是新接口本身有实现缺陷。判断办法是比较直接访问后端与经过网关两条路径的结果,差异所在就是问题所在。
排障顺序建议是:先确认服务端有没有实现该方法,再确认请求是否被中间层改写(例如把方法转换成了别的方式),最后核对路由目标是否正确。这三种原因对应的处理团队完全不同,一上来就改应用代码通常要白跑一趟。

易错点

  • 把 501 当成 405 处理去改客户端方法,实际问题在服务端没有任何实现
  • 把 501 与 500 混为一谈:前者是不支持,后者是处理时出错
  • 新接口返回 501 却只在代码里排查,忽略了网关路由配置
  • 老设备的网页界面只支持少量方法,脚本照搬通用调用方式后直接失败

数据来源与参考

  • RFC 9110 §15.6.2 501 Not Implemented

相关工具

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