HTTP状态码速查
按类别速查HTTP状态码含义与使用场景,含常见易混淆状态码的辨析与Nginx非标准码
HTTP 状态码速查
共收录 51 个状态码全部1xx 信息2xx 成功3xx 重定向4xx 客户端错误5xx 服务端错误
| 状态码 | 英文名 | 中文名 | 含义与常见场景 |
|---|---|---|---|
| 100 | Continue | 继续 | 客户端发送了 Expect: 100-continue,服务器允许继续发送请求体。常用于上传大文件前的预检。 |
| 101 | Switching Protocols | 切换协议 | 服务器同意升级协议,WebSocket 握手成功时返回的就是 101。 |
| 102 | Processing | 处理中 | WebDAV 扩展,表示服务器已收到请求但尚未完成,避免客户端超时。 |
| 103 | Early Hints | 早期提示 | 在最终响应前先返回部分头(通常是 Link: preload),让浏览器提前预加载资源。 |
| 200 | OK | 成功 | 请求成功,响应体包含结果。GET/POST/PUT 最常见的成功状态。 |
| 201 | Created | 已创建 | 资源创建成功,建议同时返回 Location 头指向新资源。POST 新增数据的规范返回值。 |
| 202 | Accepted | 已接受 | 请求已接受但尚未处理完成,适用于异步任务(如提交转码、导出任务)。 |
| 204 | No Content | 无内容 | 处理成功但没有响应体。常用于 DELETE 成功、PUT 更新后不返回数据的场景。 |
| 206 | Partial Content | 部分内容 | 范围请求(Range)成功,用于断点续传和视频拖动播放。 |
| 301 | Moved Permanently | 永久重定向 | 资源永久换了地址,搜索引擎会转移权重。旧域名换新域名用它。允许把 POST 改成 GET。 |
| 302 | Found | 临时重定向 | 资源临时在别处,后续请求仍用原地址。历史实现允许把 POST 改成 GET。 |
| 303 | See Other | 查看其他位置 | 要求客户端用 GET 去访问另一个地址,常用于表单提交后跳转到结果页。 |
| 304 | Not Modified | 未修改 | 协商缓存命中(If-None-Match / If-Modified-Since),响应无正文,客户端复用本地缓存。 |
| 307 | Temporary Redirect | 临时重定向(保持方法) | 与 302 类似,但严格要求保持原请求方法与请求体。 |
| 308 | Permanent Redirect | 永久重定向(保持方法) | 与 301 类似,但严格要求保持原请求方法与请求体。 |
| 400 | Bad Request | 请求错误 | 语法错误或参数不合法,服务器无法理解。参数校验失败最常用这个码。 |
| 401 | Unauthorized | 未认证 | 缺少或无效的身份凭证,应带 WWW-Authenticate 头。Token 过期属于这一类。 |
| 402 | Payment Required | 需要付费 | 保留状态码,部分 API 用于表示额度用尽或需要升级套餐。 |
| 403 | Forbidden | 禁止访问 | 身份已确认但没有权限,重试无意义。越权访问、IP 黑名单、防盗链拦截都属于此类。 |
| 404 | Not Found | 未找到 | 资源不存在,或服务器不愿透露其存在。路由拼错、资源被删除都会返回它。 |
| 405 | Method Not Allowed | 方法不允许 | 资源存在但不支持该方法,响应必须带 Allow 头列出支持的方法。 |
| 406 | Not Acceptable | 不可接受 | 服务器无法产生符合 Accept 头要求的响应格式。 |
| 407 | Proxy Authentication Required | 需要代理认证 | 需要先通过代理服务器的身份认证。 |
| 408 | Request Timeout | 请求超时 | 服务器等待客户端发完请求的时间过长,主动关闭了连接。 |
| 409 | Conflict | 冲突 | 与资源当前状态冲突,如并发编辑、唯一键重复、版本号不一致。 |
| 410 | Gone | 已永久删除 | 资源曾存在但已永久移除,比 404 语义更明确,利于搜索引擎清理索引。 |
| 411 | Length Required | 需要 Content-Length | 服务器要求请求带上 Content-Length 头。 |
| 412 | Precondition Failed | 前置条件失败 | If-Match / If-Unmodified-Since 等条件不满足,常用于乐观锁。 |
| 413 | Content Too Large | 请求体过大 | 上传内容超过服务器限制(Nginx 的 client_max_body_size)。旧名 Payload Too Large。 |
| 414 | URI Too Long | URI 过长 | 请求 URL 超长,通常是把大量参数拼在 query 上导致,应改用 POST。 |
| 415 | Unsupported Media Type | 不支持的媒体类型 | Content-Type 不被支持,如后端只收 application/json 却发了表单。 |
| 416 | Range Not Satisfiable | 范围无法满足 | Range 请求的区间超出资源实际大小。 |
| 417 | Expectation Failed | 预期失败 | 无法满足 Expect 请求头中的要求。 |
| 418 | I'm a teapot | 我是茶壶 | 出自愚人节 RFC 2324(超文本咖啡壶控制协议),非正式规范,只作彩蛋使用。 |
| 422 | Unprocessable Content | 无法处理的实体 | 语法正确但语义有误,无法处理。表单业务校验失败常用它区别于 400。 |
| 425 | Too Early | 过早 | 服务器不愿处理可能被重放的早期数据(TLS 1.3 early data)。 |
| 426 | Upgrade Required | 需要升级协议 | 要求客户端切换协议,如强制升级到 TLS。 |
| 428 | Precondition Required | 要求前置条件 | 服务器要求请求必须带条件头,避免"丢失更新"问题。 |
| 429 | Too Many Requests | 请求过多 | 触发限流,建议配合 Retry-After 头告知客户端等待时长。 |
| 431 | Request Header Fields Too Large | 请求头过大 | 请求头总大小或单个头过长,常见于 Cookie 累积过多。 |
| 451 | Unavailable For Legal Reasons | 因法律原因不可用 | 因法律要求(如版权、监管)拒绝提供资源。 |
| 499 | Client Closed Request | 客户端断开连接 | Nginx 私有状态码:客户端在服务器响应前主动断开。多见于前端超时取消或用户关闭页面。 |
| 500 | Internal Server Error | 服务器内部错误 | 服务器抛出未捕获异常。排查方向是应用日志,不是客户端参数。 |
| 501 | Not Implemented | 未实现 | 服务器不支持该请求方法或功能。 |
| 502 | Bad Gateway | 网关错误 | 网关从上游收到无效响应,常见于上游服务挂掉或返回了非法内容。 |
| 503 | Service Unavailable | 服务不可用 | 服务临时不可用(过载或维护),建议返回 Retry-After。 |
| 504 | Gateway Timeout | 网关超时 | 网关等待上游响应超时,与 502 区别在于上游是"慢"而不是"错"。 |
| 505 | HTTP Version Not Supported | HTTP 版本不支持 | 服务器不支持请求使用的 HTTP 协议版本。 |
| 507 | Insufficient Storage | 存储空间不足 | WebDAV 扩展,服务器磁盘空间不足以完成操作。 |
| 508 | Loop Detected | 检测到循环 | WebDAV 扩展,处理请求时检测到无限循环。 |
| 511 | Network Authentication Required | 需要网络认证 | 需要先通过网络接入认证,常见于公共 WiFi 的门户页面。 |
分类速记
1xx 信息请求已收到,正在处理,客户端应继续
2xx 成功请求已被成功接收、理解并处理
3xx 重定向需要客户端进一步动作才能完成请求
4xx 客户端错误请求本身有问题,重试同样的请求通常无效
5xx 服务端错误服务器处理时出错,请求本身可能是合法的
- 301 与 308、302 与 307 的区别:301/302 允许把 POST 改写成 GET,308/307 要求保持原方法与请求体不变。
- 401 表示"未认证"(缺少或无效凭证),403 表示"已认证但无权限",两者不要混用。
- 499 是 Nginx 私有状态码(客户端主动断开),504 是网关等待上游超时,排查方向完全不同。
- 418 出自 1998 年的愚人节 RFC 2324,不属于正式 HTTP 规范,生产接口不要使用。
功能介绍
HTTP状态码速查按1xx信息、2xx成功、3xx重定向、4xx客户端错误、5xx服务端错误五类整理了约五十个状态码,依据RFC 9110给出标准含义,并补充"什么时候该用它"的实际建议。除标准状态码外还收录了几个高频出现在日志里的非标准码并明确标注来源,例如Nginx的499(客户端主动断开连接)、CDN自定义的520与521,避免在排查问题时误以为是应用返回的。工具特别整理了几组容易混淆的状态码辨析:301与308(是否允许把POST改写为GET)、302与303与307、401与403(未认证与已认证但无权限)、404与410、499与504(是客户端先走还是上游超时)、502与503与504的区别。支持按类别筛选与关键字搜索,每条可单独复制。
使用说明
1. 点击顶部的类别标签筛选1xx到5xx,或直接在搜索框输入状态码数字与关键字;2. 每条展示状态码、英文名称、中文含义与典型使用场景;3. 查看"易混淆状态码辨析"区块,确认自己选用的状态码语义是否准确;4. 排查线上日志时注意区分标准码与Nginx、CDN自定义码,页面已对非标准码加了标注;5. 设计API时优先使用语义准确的状态码而不是一律返回200再在响应体里放错误码,前者能被网关、CDN与监控正确识别。