在后端开发中,HTTP 状态码是服务器响应客户端请求时返回的标准代码,用于表示请求的处理结果。状态码由三位数字组成,分为五类,每类有不同的含义。以下是一些常见的 HTTP 状态码及其含义:
1xx:信息性状态码(Informational)
表示请求已被接收,继续处理。
- 100 Continue:客户端应继续发送请求的剩余部分。
- 101 Switching Protocols:服务器同意切换协议(如从 HTTP 切换到 WebSocket)。
2xx:成功状态码(Success)
表示请求已成功被服务器接收、理解并处理。
- 200 OK:请求成功,服务器返回了请求的数据。
- 201 Created:请求成功,并且服务器创建了新的资源(常用于 POST 请求)。
- 204 No Content:请求成功,但服务器没有返回任何内容(常用于 DELETE 请求)。
3xx:重定向状态码(Redirection)
表示需要客户端进一步操作以完成请求。
- 301 Moved Permanently:请求的资源已永久移动到新位置。
- 302 Found:请求的资源临时移动到新位置。
- 304 Not Modified:资源未修改,客户端可以使用缓存的版本(常用于缓存验证)。
4xx:客户端错误状态码(Client Error)
表示客户端发送的请求有错误,服务器无法处理。
- 400 Bad Request:请求无效,服务器无法理解(如参数错误)。
- 401 Unauthorized:请求需要身份验证(如未登录)。
- 403 Forbidden:服务器拒绝请求(如权限不足)。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:请求方法不被允许(如用 GET 访问只支持 POST 的接口)。
5xx:服务器错误状态码(Server Error)
表示服务器在处理请求时发生错误。
- 500 Internal Server Error:服务器内部错误,无法完成请求。
- 502 Bad Gateway:服务器作为网关或代理时,从上游服务器收到无效响应。
- 503 Service Unavailable:服务器暂时无法处理请求(如过载或维护)。
- 504 Gateway Timeout:服务器作为网关或代理时,未能及时从上游服务器收到响应。
常见状态码的使用场景
状态码 | 含义 | 典型场景 |
---|---|---|
200 | 请求成功 | 获取数据成功(GET 请求) |
201 | 资源创建成功 | 创建新资源(POST 请求) |
204 | 无内容 | 删除资源成功(DELETE 请求) |
301 | 永久重定向 | 网站迁移到新域名 |
302 | 临时重定向 | 临时跳转到其他页面 |
400 | 请求无效 | 客户端参数错误 |
401 | 未授权 | 用户未登录或 Token 无效 |
403 | 禁止访问 | 用户权限不足 |
404 | 资源不存在 | 请求的 URL 不存在 |
500 | 服务器内部错误 | 服务器代码异常 |
503 | 服务不可用 | 服务器过载或维护 |
示例
-
200 OK
客户端请求成功,服务器返回数据:{ "status": 200, "data": { "id": 1, "name": "John Doe" } }
-
404 Not Found
客户端请求的资源不存在:{ "status": 404, "message": "Resource not found" }
-
500 Internal Server Error
服务器内部错误:{ "status": 500, "message": "Internal server error" }
总结
HTTP 状态码是客户端与服务器通信的重要工具,能够清晰地表达请求的处理结果。开发时应根据业务场景选择合适的状态码,并结合响应体提供详细的错误信息,以便客户端正确处理。