HTTP状态码(HTTP Status Codes)
HTTP 状态码用于表示服务器对客户端请求的处理结果。
分为五大类:信息响应(1xx)、成功(2xx)、重定向(3xx)、客户端错误(4xx)、服务器错误(5xx)。
🧩 一、1xx:信息响应(Informational)
表示请求已接收,继续处理。
| 状态码 | 含义 | 说明 |
|---|---|---|
| 100 Continue | 继续 | 服务器已接收到请求头,客户端可以继续发送请求体。 |
| 101 Switching Protocols | 切换协议 | 服务器根据客户端请求切换协议(例如从 HTTP 切换到 WebSocket)。 |
| 102 Processing | 正在处理 | WebDAV 扩展,表示服务器正在处理请求,但尚未完成。 |
✅ 二、2xx:成功(Success)
表示请求已被成功接收、理解并接受。
| 状态码 | 含义 | 说明 |
|---|---|---|
| 200 OK | 成功 | 请求成功,服务器返回所请求的资源。 |
| 201 Created | 已创建 | 请求成功并创建了新的资源(常用于 POST)。 |
| 202 Accepted | 已接受 | 请求已接收但尚未处理。 |
| 203 Non-Authoritative Information | 非授权信息 | 返回的信息来自第三方源。 |
| 204 No Content | 无内容 | 请求成功但没有返回数据(如 DELETE)。 |
| 205 Reset Content | 重置内容 | 要求客户端重置文档视图。 |
| 206 Partial Content | 部分内容 | 服务器只返回了部分资源(用于断点续传)。 |
🚦 三、3xx:重定向(Redirection)
表示客户端需要进一步操作才能完成请求。
| 状态码 | 含义 | 说明 |
|---|---|---|
| 300 Multiple Choices | 多种选择 | 请求有多个可用响应。 |
| 301 Moved Permanently | 永久重定向 | 请求的资源已永久移动到新的 URI。 |
| 302 Found | 临时重定向 | 资源暂时移动到其他 URI。 |
| 303 See Other | 查看其他位置 | 建议使用 GET 方式访问另一个 URI。 |
| 304 Not Modified | 未修改 | 客户端缓存资源仍有效。 |
| 307 Temporary Redirect | 临时重定向(保持方法) | 与 302 类似,但不会改变请求方法。 |
| 308 Permanent Redirect | 永久重定向(保持方法) | 与 301 类似,但不会改变请求方法。 |
⚠️ 四、4xx:客户端错误(Client Error)
表示客户端的请求有问题。
| 状态码 | 含义 | 说明 |
|---|---|---|
| 400 Bad Request | 错误请求 | 请求语法错误或参数错误。 |
| 401 Unauthorized | 未授权 | 需要身份验证或认证失败。 |
| 403 Forbidden | 禁止访问 | 服务器理解请求但拒绝执行。 |
| 404 Not Found | 未找到 | 请求的资源不存在。 |
| 405 Method Not Allowed | 方法不允许 | 请求方法(如 PUT/DELETE)不被允许。 |
| 406 Not Acceptable | 不可接受 | 请求的资源无法满足客户端的要求。 |
| 407 Proxy Authentication Required | 需要代理身份验证 | 需要通过代理服务器认证。 |
| 408 Request Timeout | 请求超时 | 服务器等待客户端发送请求超时。 |
| 409 Conflict | 冲突 | 请求与资源的当前状态冲突。 |
| 410 Gone | 已删除 | 资源已永久删除且不再可用。 |
| 411 Length Required | 需要长度 | 请求缺少 Content-Length 头。 |
| 413 Payload Too Large | 请求实体过大 | 请求体超过服务器限制。 |
| 414 URI Too Long | URI 过长 | 请求 URI 过长。 |
| 415 Unsupported Media Type | 不支持的媒体类型 | 请求格式不受支持。 |
| 416 Range Not Satisfiable | 请求范围不符合要求 | 范围请求的 Range 无效。 |
| 417 Expectation Failed | 预期失败 | Expect 请求头的条件无法满足。 |
| 422 Unprocessable Entity | 无法处理的实体 | 通常是语义错误(常见于 WebDAV / REST API)。 |
| 429 Too Many Requests | 请求过多 | 请求频率超出限制(限流常见)。 |
💥 五、5xx:服务器错误(Server Error)
表示服务器在处理请求时出现问题。
| 状态码 | 含义 | 说明 |
|---|---|---|
| 500 Internal Server Error | 服务器内部错误 | 通用错误,服务器执行出错。 |
| 501 Not Implemented | 未实现 | 服务器不支持该请求功能。 |
| 502 Bad Gateway | 错误网关 | 作为网关的服务器收到无效响应。 |
| 503 Service Unavailable | 服务不可用 | 服务器暂时超载或维护中。 |
| 504 Gateway Timeout | 网关超时 | 网关等待上游响应超时。 |
| 505 HTTP Version Not Supported | 不支持的 HTTP 版本 | 服务器不支持请求所用 HTTP 版本。 |
| 507 Insufficient Storage | 存储不足 | 服务器无法存储请求的资源。 |
| 508 Loop Detected | 检测到循环 | 请求陷入死循环(WebDAV 扩展)。 |
📘 常见开发场景举例
| 场景 | 状态码 | 说明 |
|---|---|---|
| 登录失败 | 401 Unauthorized | 认证失败或 token 无效 |
| 无权限访问 | 403 Forbidden | 用户权限不足 |
| 页面不存在 | 404 Not Found | 路径错误或资源被删除 |
| 接口参数错误 | 400 Bad Request | 参数缺失或格式错误 |
| 服务器异常 | 500 Internal Server Error | 后端代码抛出异常 |
| 接口限流 | 429 Too Many Requests | 请求次数过多 |
| 新建资源成功 | 201 Created | POST 创建成功 |
| 删除成功无返回 | 204 No Content | DELETE 成功但不返回内容 |
📘 Tips:
2xx:请求成功;3xx:资源重定向;4xx:客户端请求有误;5xx:服务器出错。
