总结
- 1xx: 正在处理
- 2xx: 成功
- 3xx: 重定向,302 重定向,304 协商缓存
- 4xx: 客户端错误,401 未登录,403 没权限,404 资源不存在
- 5xx: 服务器错误
常见的 HTTP 状态码详解
HTTP 状态码(HTTP Status Code)是服务器返回给客户端的响应代码,用于表示请求的处理结果。它是一个三位数的数字代码,通常分为五类。
一、HTTP 状态码分类
状态码范围 |
类别 |
含义 |
1xx |
Informational(信息性) |
请求正在处理中 |
2xx |
Success(成功) |
请求已成功接收并处理 |
3xx |
Redirection(重定向) |
需要进一步操作才能完成请求 |
4xx |
Client Error(客户端错误) |
请求有误,服务器无法处理 |
5xx |
Server Error(服务器错误) |
服务器内部错误 |
二、常见状态码详解
✅ 1xx:信息性状态码(Informational)
- 表示请求已被服务器接收,正在继续处理。
- 客户端一般无需特别处理这些状态码。
状态码 |
描述 |
100 Continue |
客户端可以继续发送请求体 |
101 Switching Protocols |
服务器根据客户端请求切换协议(如升级到 WebSocket) |
✅ 2xx:成功状态码(Success)
状态码 |
描述 |
200 OK |
请求成功,正常返回数据 |
201 Created |
请求成功并在服务器上创建了新资源(常用于 POST) |
204 No Content |
请求成功但没有返回内容(常用于 DELETE 或 PUT) |
✅ 3xx:重定向状态码(Redirection)
- 表示客户端需要进一步操作来完成请求,通常是跳转到另一个 URL。
状态码 |
描述 |
301 Moved Permanently |
资源永久移动到了新位置(SEO 友好) |
302 Found (临时重定向) |
资源临时移动到了新位置 |
303 See Other |
应该使用 GET 方法请求另一个 URI |
304 Not Modified |
资源未修改,可使用缓存(常用于协商缓存) |
307 Temporary Redirect |
与 302 类似,但要求保持请求方法不变 |
✅ 4xx:客户端错误状态码(Client Error)
状态码 |
描述 |
400 Bad Request |
请求格式错误,服务器无法理解 |
401 Unauthorized |
请求需要身份验证(如 Token 过期) |
403 Forbidden |
服务器拒绝执行请求(权限不足) |
404 Not Found |
请求的资源不存在 |
405 Method Not Allowed |
请求方法不被允许(如用 POST 请求只支持 GET 的接口) |
408 Request Timeout |
客户端请求超时 |
429 Too Many Requests |
客户端请求过多,服务器限流 |
✅ 5xx:服务器错误状态码(Server Error)
状态码 |
描述 |
500 Internal Server Error |
服务器内部错误(最常见的服务端异常) |
501 Not Implemented |
服务器不支持当前请求的功能 |
502 Bad Gateway |
作为网关或代理的服务器从上游服务器收到无效响应 |
503 Service Unavailable |
服务器暂时不可用(过载或维护) |
504 Gateway Timeout |
网关或代理服务器等待上游服务器响应超时 |
三、状态码使用场景总结
场景 |
推荐状态码 |
登录失败 |
401 Unauthorized |
没有访问权限 |
403 Forbidden |
页面不存在 |
404 Not Found |
接口调用成功 |
200 OK |
创建资源成功 |
201 Created |
删除/更新资源成功但无返回值 |
204 No Content |
服务器异常 |
500 Internal Server Error |
接口限流 |
429 Too Many Requests |
协商缓存命中 |
304 Not Modified |