HTTP 状态码是服务器对客户端请求的响应标识,由 3 位数字和描述文本组成。以下是按类别组织的完整状态码列表:
一、1xx 信息响应(临时响应)
状态码 | 名称 | 说明 |
---|---|---|
100 | Continue | 客户端应继续请求 |
101 | Switching Protocols | 服务器已理解请求,并将通过 Upgrade 消息头切换协议 |
102 | Processing | 服务器已收到请求,正在处理(WebDAV) |
103 | Early Hints | 用于在正式响应前返回部分响应头(预加载资源) |
二、2xx 成功响应
状态码 | 名称 | 说明 |
---|---|---|
200 | OK | 请求成功 |
201 | Created | 资源创建成功(POST 请求后返回) |
202 | Accepted | 请求已接受但未处理完成 |
203 | Non-Authoritative | 代理服务器修改了原始服务器的响应 |
204 | No Content | 响应无内容(如 DELETE 请求成功) |
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 | 资源已永久移动到新位置 |
302 | Found | 资源临时移动到新位置 |
303 | See Other | 重定向到其他资源(通常用于 POST 后的 GET 重定向) |
304 | Not Modified | 资源未修改(缓存有效) |
305 | Use Proxy | 需通过代理访问资源(已废弃) |
307 | Temporary Redirect | 临时重定向(保持原请求方法) |
308 | Permanent Redirect | 永久重定向(保持原请求方法) |
四、4xx 客户端错误
状态码 | 名称 | 说明 |
---|---|---|
400 | Bad Request | 请求语法错误 |
401 | Unauthorized | 需要身份验证 |
402 | Payment Required | 保留状态(最初设计用于支付系统) |
403 | Forbidden | 服务器拒绝请求 |
404 | Not Found | 资源不存在 |
405 | Method Not Allowed | 请求方法不被允许 |
406 | Not Acceptable | 服务器无法生成客户端接受的响应 |
407 | Proxy Auth Required | 需要代理身份验证 |
408 | Request Timeout | 请求超时 |
409 | Conflict | 请求与当前资源状态冲突 |
410 | Gone | 资源已永久删除 |
411 | Length Required | 需要 Content-Length 请求头 |
412 | Precondition Failed | 请求头中的前提条件失败 |
413 | Payload Too Large | 请求体过大 |
414 | URI Too Long | 请求 URI 过长 |
415 | Unsupported Media | 不支持的媒体类型 |
416 | Range Not Satisfiable | 请求范围不符合要求 |
417 | Expectation Failed | 无法满足 Expect 请求头 |
418 | I'm a teapot | 彩蛋状态码(RFC 2324) |
421 | Misdirected Request | 请求被发送到错误的服务器 |
422 | Unprocessable Entity | 请求格式正确但语义错误(WebDAV) |
423 | Locked | 资源被锁定(WebDAV) |
424 | Failed Dependency | 因前序请求失败导致当前请求失败(WebDAV) |
425 | Too Early | 服务器不愿冒险处理可能重复的请求 |
426 | Upgrade Required | 客户端应升级协议 |
428 | Precondition Required | 需要条件请求 |
429 | Too Many Requests | 请求频率过高 |
431 | Request Header Large | 请求头字段过大 |
451 | Unavailable For Legal | 因法律原因不可用 |
五、5xx 服务器错误
状态码 | 名称 | 说明 |
---|---|---|
500 | Internal Server Error | 服务器内部错误 |
501 | Not Implemented | 服务器不支持请求的功能 |
502 | Bad Gateway | 网关或代理服务器收到无效响应 |
503 | Service Unavailable | 服务不可用(临时过载或维护) |
504 | Gateway Timeout | 网关超时 |
505 | HTTP Version Invalid | 不支持请求的 HTTP 版本 |
506 | Variant Also Negotiates | 服务器存在内部配置错误 |
507 | Insufficient Storage | 存储空间不足(WebDAV) |
508 | Loop Detected | 检测到无限循环(WebDAV) |
510 | Not Extended | 需要扩展请求 |
511 | Network Auth Required | 需要网络身份验证 |
六、关键状态码使用场景
-
缓存控制:
-
200 OK(强缓存)
-
304 Not Modified(协商缓存)
-
-
SEO 优化:
-
301(永久重定向,权重转移)
-
302(临时重定向,不转移权重)
-
-
API 设计:
-
201 Created(资源创建成功)
-
400(客户端参数错误)
-
401(未授权)
-
403(权限不足)
-
429(限流响应)
-
-
错误排查:
-
502/504(网关问题)
-
503(服务扩容需求)
-
413(调整上传限制)
-
七、非标准状态码(常见扩展)
状态码 | 名称 | 使用场景 |
---|---|---|
420 | Enhance Your Calm | Twitter API 限速响应 |
450 | Blocked by Windows | 微软扩展(家长控制拦截) |
509 | Bandwidth Limit Exceeded | 带宽超限 |
530 | Site Frozen | 网站被冻结(Cloudflare) |
八、状态码记忆技巧
-
2xx:成功(200 OK 是核心)
-
3xx:重定向(301永久/302临时)
-
4xx:客户端问题(404找不到/403无权限)
-
5xx:服务器问题(500服务器错误/502网关错误)
此列表覆盖了 RFC 标准和广泛使用的非官方状态码,建议开发者重点掌握 200、301、302、304、400、401、403、404、500、502、503 等常用状态码。