HTTP 状态码查询
查询任意 HTTP 状态码的含义、常见原因与解决办法、默认是否可缓存以及对应的 RFC 章节。收录 IANA 完整列表,以及 nginx 和 Cloudflare 的状态码。
| 状态码 | 名称 | 类别 | 可缓存 | 定义于 |
|---|---|---|---|---|
| 400 | 错误请求 | 客户端错误 | No | RFC 9110 §15.5.1 |
| 401 | 未授权 | 客户端错误 | No | RFC 9110 §15.5.2 |
| 402 | 需要付款 | 客户端错误 | No | RFC 9110 §15.5.3 |
| 403 | 禁止访问 | 客户端错误 | No | RFC 9110 §15.5.4 |
| 404 | 未找到 | 客户端错误 | Yes | RFC 9110 §15.5.5 |
| 405 | 方法不被允许 | 客户端错误 | Yes | RFC 9110 §15.5.6 |
| 406 | 无法接受 | 客户端错误 | No | RFC 9110 §15.5.7 |
| 407 | 需要代理认证 | 客户端错误 | No | RFC 9110 §15.5.8 |
| 408 | 请求超时 | 客户端错误 | No | RFC 9110 §15.5.9 |
| 409 | 冲突 | 客户端错误 | No | RFC 9110 §15.5.10 |
| 410 | 已删除 | 客户端错误 | Yes | RFC 9110 §15.5.11 |
| 411 | 需要长度 | 客户端错误 | No | RFC 9110 §15.5.12 |
| 412 | 前置条件失败 | 客户端错误 | No | RFC 9110 §15.5.13 |
| 413 | 内容过大 | 客户端错误 | No | RFC 9110 §15.5.14 |
| 414 | URI 过长 | 客户端错误 | Yes | RFC 9110 §15.5.15 |
| 415 | 不支持的媒体类型 | 客户端错误 | No | RFC 9110 §15.5.16 |
| 416 | 范围无法满足 | 客户端错误 | No | RFC 9110 §15.5.17 |
| 417 | 期望失败 | 客户端错误 | No | RFC 9110 §15.5.18 |
| 418 | (未使用) | 客户端错误 | No | RFC 9110 §15.5.19 |
| 419 | 页面已过期 | 客户端错误 | 未定义 | 非官方 — Laravel |
| 420 | 请冷静一下 | 客户端错误 | 未定义 | 非官方 — Twitter API v1 (retired) |
| 421 | 请求被错误导向 | 客户端错误 | No | RFC 9110 §15.5.20 |
| 422 | 无法处理的内容 | 客户端错误 | No | RFC 9110 §15.5.21 |
| 423 | 已锁定 | 客户端错误 | No | RFC 4918 §11.3 |
| 424 | 依赖失败 | 客户端错误 | No | RFC 4918 §11.4 |
| 425 | 请求过早 | 客户端错误 | No | RFC 8470 §5.2 |
| 426 | 需要升级 | 客户端错误 | No | RFC 9110 §15.5.22 |
| 428 | 需要前置条件 | 客户端错误 | No | RFC 6585 §3 |
| 429 | 请求过多 | 客户端错误 | No | RFC 6585 §4 |
| 431 | 请求头字段过大 | 客户端错误 | No | RFC 6585 §5 |
| 444 | 无响应 | 客户端错误 | 未定义 | 非官方 — nginx |
| 451 | 因法律原因不可用 | 客户端错误 | No | RFC 7725 §3 |
| 494 | 请求头过大 | 客户端错误 | 未定义 | 非官方 — nginx |
| 495 | SSL 证书错误 | 客户端错误 | 未定义 | 非官方 — nginx |
| 496 | 需要 SSL 证书 | 客户端错误 | 未定义 | 非官方 — nginx |
| 497 | 向 HTTPS 端口发送了 HTTP 请求 | 客户端错误 | 未定义 | 非官方 — nginx |
| 499 | 客户端关闭了请求 | 客户端错误 | 未定义 | 非官方 — nginx |
每个 HTTP 响应都以一个三位数的状态码开头,告诉浏览器、API 客户端或搜索引擎发生了什么。本查询工具涵盖 IANA 注册表的全部状态码(RFC 9110 以及 WebDAV 等后续 RFC 中定义的状态码),也包含在 nginx 日志和 Cloudflare 错误页面中遇到的非官方状态码。每个状态码都附有通俗的解释、常见原因和处理办法。
使用方法
- 输入 502 这样的状态码,或 redirect、timeout、cookie 等单词。
- 如有需要,可按类别缩小范围,例如只看 5xx 服务器错误。
- 查看含义、常见处理办法、默认是否可缓存,以及定义它的 RFC 章节。
- 输入框留空即可浏览完整表格。
计算公式
类别 = 第一位数字:1 信息 · 2 成功 · 3 重定向 · 4 客户端错误 · 5 服务器错误
RFC 9110 要求客户端理解任何状态码的类别,并把未知状态码当作同类别的 x00 状态码处理,因此无法识别的 299 按 200 处理,477 按 400 处理。状态码为 200、203、204、206、300、301、308、404、405、410、414 和 501 的响应,即使没有明确的新鲜度头也可以被缓存(启发式缓存)。
示例
搜索 504 会显示 RFC 9110 §15.6.5 中的 Gateway Timeout:nginx 或负载均衡器等代理在等待后端应用响应时放弃了,所以要在服务器端处理,加快慢请求,或调高代理超时时间。搜索 524 会显示同一问题在 Cloudflare 上的版本,以及 Cloudflare 默认的 100 秒限制。
常见问题
401 和 403 有什么区别?
401 表示未通过认证,登录或发送有效令牌后可能就能成功。403 表示服务器知道你是谁(或根本不在意)但仍然拒绝,再次登录也没用。
该用 301 还是 308,302 还是 307?
301 和 302 允许浏览器在跟随重定向时把 POST 改成 GET。308(永久)和 307(临时)会保留请求方法和请求体,这对 API 和表单提交很重要。普通页面搬迁用 301 即可。
418 I'm a teapot 是真正的状态码吗?
不是。它出自一份关于咖啡壶的愚人节 RFC。RFC 9110 把 418 列为“(Unused)”,并将其保留,以免被赋予真正的含义。
为什么 nginx 日志里会出现 499?
这是 nginx 自己的状态码,表示客户端在响应准备好之前就关闭了连接,常见于用户离开页面或客户端超时。它不会发送给浏览器。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/http-status-code-lookup/
引用此工具
kakaoCalc. (2026, November 8). HTTP 状态码查询. https://kakao.mobile/zh/tools/http-status-code-lookup/
“HTTP 状态码查询.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/http-status-code-lookup/.