HTTP 状态码

快速答案: 第一位数字通常告诉你问题由谁负责:2xx 表示成功,3xx 表示重定向,4xx 表示客户端请求有误,5xx 表示服务器端失败。排查 4xx 应修复请求,排查 5xx 则应检查服务器或其上游依赖。

1xx — 信息提示

100继续服务器已收到请求头;请继续发送请求体。
101切换协议已接受协议升级(例如 WebSocket)。
103早期提示在最终响应前发送预加载提示。

2xx — 成功

200成功请求成功。
201已创建已创建新资源。
202已接受请求已排队等待后续处理,尚未完成。
204无内容请求成功,但响应体为空。
206部分内容范围请求返回了资源的一部分。

3xx — 重定向

301永久移动规范 URL 已改变;请更新链接和书签。
302临时发现临时重定向;继续使用原始 URL。
303查看其他位置POST 后的重定向,使用 GET 获取结果。
304未修改缓存副本仍然有效;不发送响应体。
307临时重定向类似 302,但会保留方法和请求体。
308永久重定向永久重定向;会保留方法和请求体。

4xx — 客户端错误

400错误请求请求本身格式错误。
401未授权缺少认证或认证失败。
403禁止访问无论是否已认证,都无权访问此资源。
404未找到此 URL 没有对应资源。
405方法不允许此端点不支持当前 HTTP 方法。
408请求超时客户端发送请求所用时间过长。
409冲突请求与当前状态冲突(例如重复提交)。
410已消失资源曾经存在,但已被永久移除。
413内容过大请求体超过大小限制。
415不支持的媒体类型此端点不接受当前 Content-Type。
422无法处理的内容格式正确但语义无效(校验错误)。
429请求过多触发限流;请退避后再试。

5xx — 服务器错误

500内部服务器错误应用意外崩溃或发生错误。
501尚未实现服务器不支持此功能。
502错误网关代理或网关从上游收到无效响应。
503服务不可用服务过载、正在重启或处于维护状态。
504网关超时上游未能在代理超时前响应。

502、503、504——反向代理三件套

在负载均衡器或反向代理之后,这三个状态码分别表示不同的上游故障。502 错误网关 表示代理联系到了上游,但收到无效响应,通常是应用崩溃、返回错误内容或关闭连接。请检查应用进程是否运行并监听正确端口。503 服务不可用 表示上游明确不可用,可能正在过载、重启、部署或被代理限流。请检查容量、健康检查和部署流水线。504 网关超时 表示上游接受了请求,但未能在代理超时前响应,通常是慢查询、下游 HTTP 调用或卡住的工作进程。

实际排查顺序是:502 先确认“应用是否正常运行并正确通信”,503 确认“应用是否有能力接受请求”,504 确认“应用正在等待什么”。完整流程请参阅 HTTP 错误排查指南

参考资料