HTTP 响应状态码
HTTP 响应状态码(Response Status Codes)
HTTP 响应状态码用于表示服务器对客户端请求的处理结果,由3位数字 组成,分为5类:
状态码 | 类别 | 常见状态码 | 说明 |
1xx | 信息响应 | 100(Continue) | 服务器已接收请求,客户端应继续发送 |
2xx | 成功响应 | 200(OK) | 请求成功,返回数据 |
201(Created) | 资源创建成功(如POST请求) | ||
204(No Content) | 请求成功,但无返回内容 | ||
3xx | 重定向 | 301(Moved Permanently) | 资源永久重定向 |
302(Found) | 资源临时重定向 | ||
304(Not Modified) | 资源未修改(缓存有效) | ||
4xx | 客户端错误 | 400(Bad Request) | 请求语法错误 |
401(Unauthorized) | 未授权(需登录) | ||
403(Forbidden) | 服务器拒绝访问 | ||
404(Not Found) | 资源不存在 | ||
5xx | 服务器错误 | 500(Internal Server Error) | 服务器内部错误 |
502(Bad Gateway) | 网关/代理服务器错误 | ||
503(Service Unavailable) | 服务器暂时不可用 |
详解
1xx 信息响应(Informational)
特点:临时响应,表示请求已被接收,继续处理。
常见于:客户端和服务器间需要一些交互确认的场景。
-
100 Continue
说明:客户端应继续发送请求的剩余部分。
场景:一般用于大文件上传时,客户端先发送请求头,服务器响应 100 后,客户端再发送主体内容。 -
101 Switching Protocols
说明:服务器同意客户端请求,切换协议(比如从HTTP切到WebSocket)。
2xx 成功响应(Successful)
特点:表示请求已被成功接收、理解、并接受。
-
200 OK
说明:请求成功,服务器返回所请求的数据。
场景:最常见的状态码,GET、POST、PUT 等请求成功后都会返回。 -
201 Created
说明:请求成功并且服务器创建了新的资源。
场景:常用于POST请求(如注册用户、添加数据)。 -
204 No Content
说明:请求成功,但没有返回任何内容。
场景:常用于DELETE请求,或PUT请求后不需要返回内容的情况。
3xx 重定向(Redirection)
特点:需要客户端采取进一步操作(如访问新地址)。
-
301 Moved Permanently
说明:请求资源已被永久移动到新位置。
场景:域名迁移、永久网址变更。浏览器会自动跳转。 -
302 Found
说明:请求资源临时移动。
场景:临时跳转,常见于登录后跳回原页面。 -
304 Not Modified
说明:资源未被修改,可以使用缓存。
场景:客户端带If-Modified-Since头请求,服务器发现资源没变就返回304,客户端直接用本地缓存。
4xx 客户端错误(Client Error)
特点:请求有错误,客户端需修改请求后重试。
-
400 Bad Request
说明:请求语法错误,服务器无法理解。
场景:参数缺失、格式错误等。 -
401 Unauthorized
说明:未授权,需要登录。
场景:访问需要认证的接口没带token或登录信息。 -
403 Forbidden
说明:服务器理解请求,但拒绝执行。
场景:权限不足、IP被屏蔽等。 -
404 Not Found
说明:请求的资源不存在。
场景:URL地址写错、接口下线等。
5xx 服务器错误(Server Error)
特点:服务器处理请求时出错,属于服务器端问题。
-
500 Internal Server Error
说明:服务器内部错误,无法完成请求。
场景:代码异常、配置错误。 -
502 Bad Gateway
说明:服务器作为网关或代理时,从上游服务器收到无效响应。
场景:反向代理、负载均衡等场合后端挂了。 -
503 Service Unavailable
说明:服务器暂时无法处理请求。
场景:服务器维护、过载、短时间故障。
常见开发与调试建议
- 2xx:一切正常,可以放心处理返回数据。
- 3xx:注意跳转地址,避免死循环重定向。
- 4xx:检查接口文档和请求参数,尤其是 400/401/403/404。
- 5xx:联系后端排查服务器错误。
状态码扩展举例
- 405 Method Not Allowed:请求方法(如POST、GET)不被允许。
- 408 Request Timeout:请求超时。
- 429 Too Many Requests:请求过多,被限流。
- 504 Gateway Timeout:网关超时。