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 错误排查指南。