HTTP状态码详解:概念与应用
2025年2月27日大约 2 分钟
HTTP状态码详解
HTTP状态码是服务器对客户端请求的响应状态标识,由三位数字组成,第一个数字定义了响应的类别。
1xx - 信息响应
这类状态码表示临时响应,客户端需要继续请求或忽略该响应。
- 100 Continue:服务器已收到请求的初始部分,客户端应继续请求
- 101 Switching Protocol:服务器正在切换协议
- 102 Processing:服务器正在处理请求,但尚未完成
2xx - 成功响应
表示服务器已成功接收、理解并处理请求。
- 200 OK:请求成功,服务器返回请求的数据
- 201 Created:请求成功且服务器创建了新的资源
- 202 Accepted:服务器已接受请求,但尚未处理
- 204 No Content:请求成功,但没有数据返回
- 206 Partial Content:服务器成功处理了部分请求
3xx - 重定向消息
表示客户端需要执行进一步的操作才能完成请求。
- 300 Multiple Choice:请求有多种可能的响应
- 301 Moved Permanently:请求的资源已永久移动到新位置
- 302 Found:请求的资源临时移动到新位置
- 304 Not Modified:资源未修改,可使用缓存版本
- 307 Temporary Redirect:临时重定向
- 308 Permanent Redirect:永久重定向
4xx - 客户端错误响应
表示客户端可能发生了错误。
- 400 Bad Request:服务器无法理解请求
- 401 Unauthorized:未经授权,需要身份验证
- 403 Forbidden:服务器拒绝请求,权限不足
- 404 Not Found:请求的资源不存在
- 405 Method Not Allowed:请求方法不允许
- 408 Request Timeout:请求超时
- 429 Too Many Requests:请求过于频繁
5xx - 服务器错误响应
表示服务器在处理请求时发生错误。
- 500 Internal Server Error:服务器内部错误
- 501 Not Implemented:服务器不支持请求的功能
- 502 Bad Gateway:网关错误
- 503 Service Unavailable:服务暂时不可用
- 504 Gateway Timeout:网关超时
- 505 HTTP Version Not Supported:不支持的HTTP版本
实际应用场景
2xx状态码使用场景
- GET请求成功:200 OK
- POST创建资源:201 Created
- DELETE删除成功:204 No Content
4xx状态码使用场景
- 参数验证失败:400 Bad Request
- 未登录访问:401 Unauthorized
- 无权限访问:403 Forbidden
- 资源不存在:404 Not Found
5xx状态码使用场景
- 代码运行错误:500 Internal Server Error
- 服务器负载过高:503 Service Unavailable
- 上游服务超时:504 Gateway Timeout
状态码使用建议
- 准确使用状态码表达响应状态
- 在API文档中明确说明可能的状态码
- 对于错误状态码,提供明确的错误信息
- 保持状态码使用的一致性
- 避免使用非标准状态码