HTTP 状态码大全(快速查阅版)
HTTP 状态码分为 5 大类:1xx 信息响应、2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务端错误
1xx 信息响应(请求已接收,继续处理)
| 状态码 | 含义 | 场景说明 |
|---|
| 100 | Continue 继续 | 客户端可以继续发送请求体;大文件上传前置校验 |
| 101 | Switching Protocols 切换协议 | WebSocket 握手,升级协议 |
| 102 | Processing 处理中 | WebDAV,服务器正在处理,还没返回结果 |
| 103 | Early Hints 预提示 | 提前推送资源提示,浏览器预加载css/js |
2xx 成功响应(请求成功)
| 状态码 | 含义 | 场景说明 |
|---|
| 200 | OK 成功 | GET/POST 请求正常返回数据,最常用 |
| 201 | Created 已创建 | POST 创建资源成功(新建用户、新建订单) |
| 202 | Accepted 已接受 | 请求已接收,但处理未完成(异步任务) |
| 203 | Non-Authoritative Information 非权威信息 | 代理服务器返回,内容和源服务器不一致 |
| 204 | No Content 无内容 | 请求成功,但不返回响应体(删除、PUT更新) |
| 205 | Reset Content 重置内容 | 成功,要求客户端重置表单 |
| 206 | Partial Content 部分内容 | 断点续传、视频分片,Range范围请求 |
| 207 | Multi-Status 多状态 | WebDAV,多个子操作混合成功/失败 |
| 208 | Already Reported 已汇报 | WebDAV,同一资源重复返回 |
| 226 | IM Used | 服务器完成增量编码 |
3xx 重定向(需要进一步操作)
| 状态码 | 含义 | 场景说明 |
|---|
| 300 | Multiple Choices 多种选择 | 资源存在多个版本,需要客户端选择 |
| 301 | Moved Permanently 永久重定向 | 资源永久迁移;SEO,旧域名→新域名;浏览器会缓存 |
| 302 | Found 临时重定向 | 资源临时跳转;登录跳转;不缓存 |
| 303 | See Other 查看其他地址 | POST成功,跳转GET页面(表单提交后跳转) |
| 304 | Not Modified 未修改 | 协商缓存!资源没有更新,直接读本地缓存 |
| 305 | Use Proxy 使用代理 | 废弃,要求通过代理访问 |
| 306 | Switch Proxy | 废弃,保留占位 |
| 307 | Temporary Redirect 临时重定向 | 临时跳转,保留请求方法(POST跳转依然POST) |
| 308 | Permanent Redirect 永久重定向 | 永久跳转,保留请求方法 |
✅ 302 vs 307:302 旧浏览器会把POST改成GET;307严格保持原请求方法。
✅ 301 vs 308:同理,308永久重定向不改变请求方法。
4xx 客户端错误(请求有问题,服务器无法处理)
| 状态码 | 含义 | 场景说明 |
|---|
| 400 | Bad Request 请求错误 | 参数格式错误、JSON解析失败、请求语法不对 |
| 401 | Unauthorized 未认证 | 没有登录/Token失效;需要登录鉴权 |
| 402 | Payment Required 需要付费 | 预留,很少用,付费接口 |
| 403 | Forbidden 禁止访问 | 认证成功,但权限不足(登录了,但不能看这个资源) |
| 404 | Not Found 资源不存在 | URL地址错误、页面/接口不存在 |
| 405 | Method Not Allowed 方法不允许 | 接口只支持GET,你发了POST |
| 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 | Payload Too Large 请求体过大 | 上传文件大小超限 |
| 414 | URI Too Long URI过长 | URL参数太长,GET参数过多 |
| 415 | Unsupported Media Type 不支持媒体类型 | Content-Type不对,比如传text但接口要json |
| 416 | Range Not Satisfiable 范围请求无效 | 断点续传请求的Range超出文件大小 |
| 417 | Expectation Failed 期望失败 | Expect请求头不被服务器支持 |
| 418 | I'm a teapot 我是茶壶 | 彩蛋,RFC2324,愚人节文档,不能煮咖啡 |
| 421 | Misdirected Request 定向错误 | 请求发到无法响应的服务器 |
| 422 | Unprocessable Entity 无法处理实体 | 格式正确,但业务校验失败(参数合法但逻辑错误,后端校验常用) |
| 423 | Locked 已锁定 | WebDAV,资源被锁定 |
| 424 | Failed Dependency 依赖失败 | WebDAV,前置依赖操作失败 |
| 425 | Too Early 请求过早 | 防止重放攻击,请求还太早 |
| 426 | Upgrade Required 需要升级协议 | 需要升级协议才能访问 |
| 428 | Precondition Required 需要先决条件 | 必须带上条件头防止并发覆盖 |
| 429 | Too Many Requests 请求过多 | 限流,短时间请求频率太高 |
| 431 | Request Header Fields Too Large 请求头过大 | Cookie/Header内容太多 |
| 451 | Unavailable For Legal Reasons 法律原因不可用 | 因法律、合规原因无法访问 |
5xx 服务端错误(服务器处理时出错)
| 状态码 | 含义 | 场景说明 |
|---|
| 500 | Internal Server Error 服务器内部错误 | 后端代码异常、未捕获异常,通用服务端报错 |
| 501 | Not Implemented 未实现 | 服务器不支持该请求方法 |
| 502 | Bad Gateway 网关错误 | 反向代理/网关,上游服务返回无效响应(网关连不上后端) |
| 503 | Service Unavailable 服务不可用 | 服务停机、过载、正在维护;临时不可用 |
| 504 | Gateway Timeout 网关超时 | 网关等待上游服务响应超时(后端接口执行太久) |
| 505 | HTTP Version Not Supported HTTP版本不支持 | 服务器不支持当前HTTP版本 |
| 506 | Variant Also Negotiates 协商错误 | 内容协商发生循环 |
| 507 | Insufficient Storage 存储空间不足 | WebDAV,服务器磁盘满 |
| 508 | Loop Detected 检测到循环 | WebDAV,资源引用死循环 |
| 510 | Not Extended 未扩展 | 需要扩展才能处理请求 |
| 511 | Network Authentication Required 需要网络认证 | 网关需要网页登录(酒店WiFi弹窗认证) |
📌 高频状态码速记(开发最常用)
- ✅ 200:成功
- ✅ 201:创建成功
- ✅ 204:成功无返回体
- ✅ 301:永久重定向
- ✅ 302:临时重定向
- ✅ 304:协商缓存
- ❌ 400:参数错误
- ❌ 401:未登录/Token过期
- ❌ 403:登录了,但没权限
- ❌ 404:找不到资源
- ❌ 405:请求方法不对
- ❌ 415:Content-Type不对
- ❌ 422:业务校验失败
- ❌ 429:请求限流
- ⚠️ 500:后端代码报错
- ⚠️ 502:网关坏了/连不上后端
- ⚠️ 503:服务挂了/维护
- ⚠️ 504:网关超时
如果你需要,我可以单独输出一份Markdown精简版(只保留高频码,适合存笔记)或者JSON格式方便导入文档。