首页/网络/协议速查/4xx 客户端错误类(400-499)
HTTP 方法与状态码91 条

4xx 客户端错误类(400-499)

表示请求本身有问题:语法错误、认证/权限不足、资源不存在、条件不满足等;重试前应先修正请求。

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

4xx 是什么

4xx 表示错误来自请求方:语法错误、认证或权限不足、资源不存在、条件不满足、请求过大、触发限流。它的共同含义是「服务器看懂了但拒绝或无法处理当前这个请求」,因此盲目重试通常没有意义,先修请求才是正解。但要注意两个例外:请求超时与触发限流这两类在退避之后是可以重试的,把它们和权限、路径类的错误一概而论,会做出错误的处置。

基本信息

范围以四开头的状态码
含义错误来自请求方,或请求与当前资源状态不匹配
常见码语法错误、未认证、拒绝访问、未找到、方法不允许、限流
是否可重试多数不可,超时类与限流类可在退避后重试
归因方向先看请求构造,再看权限与资源状态

典型使用场景

  • 接口联调:构造错误参数,确认服务端给出精确的错误说明
  • 权限排障:区分未认证与拒绝访问,避免让用户反复登录
  • 限流应对:识别限流响应并按提示退避
  • 版本兼容:收到方法不允许时核对接口文档允许的方法
  • 条件请求失败:并发写入被拒绝后需重新读取最新版本再提交

看错误详情而不是只看状态码

看错误详情而不是只看状态码
curl -si https://api.example.com/items/999 | head -20   # 连响应头与响应体一起看
curl -si https://api.example.com/items | grep -i '^allow'   # 方法不允许时看允许哪些方法
curl -si -H 'Authorization: Bearer bad' https://api.example.com/me | grep -i '^www-authenticate'   # 未认证时看服务端要求的方案

高频四类归因速查

状态码第一优先排查点
请求语法错误请求体格式、必填参数、非法字符
未认证凭证缺失或过期,看服务端声明的认证方案
拒绝访问权限不足,也可能是来源限制或安全策略拦截
未找到地址拼写、路由是否注册、后端版本是否一致
方法不允许请求方法不对,看允许方法头部
触发限流按提示等待,并核对多层限流阈值

排查要点

  • 响应体里的机器可读错误标识比状态码更有价值,先读它再读日志
  • 同一批请求里只有部分失败时,对比成功与失败请求的差异字段
  • 若错误发生在网关层,应用日志里不会有任何记录,先确认请求是否到达应用
这一类别不等于「不能重试」:请求超时与触发限流在退避后重试是合理的;而权限不足、资源不存在这类错误无论重试多少次结果都一样,只会把日志与告警刷满。
把服务端内部异常也返回这一类状态码,会把责任错误地推给调用方:调用方按「修请求」的思路排查,而真正的问题在服务端,故障被拖延到更久才被发现。

易错点

  • 对权限不足与资源不存在类错误做自动重试,日志被刷满却没有解决任何问题
  • 只看状态码不看响应体,错过了服务端已经给出的精确错误说明
  • 把这类错误一律当成调用方问题,服务端内部异常被掩盖
  • 多层组件都返回同类错误码时不做区分,无法判断是网关还是应用产生的

数据来源与参考

  • RFC 9110 §15.5 客户端错误

相关工具

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