Http 常见的状态码
HTTP 状态码是服务器对客户端请求的响应状态标识,由三位数字组成,分为 5 大类(1xx-5xx),每类代表不同的响应类别。以下是最常见的 HTTP 状态码及其含义:
一、1xx(信息性状态码)
表示临时响应,表示请求已被接收,需要客户端继续操作。
- 100 Continue服务器已接收请求头,客户端可继续发送请求体(主要用于 POST 等大请求场景)。
二、2xx(成功状态码)
表示请求已被成功接收、理解并处理。
- 200 OK请求成功,服务器返回预期响应(最常见的成功状态)。
- 201 Created请求成功且服务器创建了新资源(如 POST 创建用户 / 文章)。
- 204 No Content请求成功,但服务器无返回内容(常用于 DELETE 请求)。
- 206 Partial Content部分请求成功(用于断点续传、大文件分片下载)。
三、3xx(重定向状态码)
表示客户端需要进一步操作才能完成请求(通常需要跳转)。
- 301 Moved Permanently资源永久迁移到新 URL,客户端应使用新 URL 后续请求(浏览器会缓存此跳转)。
- 302 Found资源临时迁移到新 URL,客户端仍应使用原 URL(临时跳转,不缓存)。
- 304 Not Modified资源未修改(基于请求头的缓存验证,如
If-Modified-Since
),客户端可使用本地缓存。 - 307 Temporary Redirect临时重定向,与 302 类似,但严格保持请求方法(如 POST 不会转为 GET)。
四、4xx(客户端错误状态码)
表示请求存在错误,服务器无法处理。
- 400 Bad Request请求格式错误(如参数无效、JSON 格式错误)。
- 401 Unauthorized请求需要身份验证(如未登录,响应通常包含
WWW-Authenticate
头)。 - 403 Forbidden服务器拒绝请求(已认证,但无权限访问)。
- 404 Not Found请求的资源不存在(最常见的错误,URL 错误或资源已删除)。
- 405 Method Not Allowed请求方法不被允许(如用 POST 访问只支持 GET 的接口)。
- 406 Not Acceptable服务器无法返回客户端请求的格式(基于
Accept
头)。 - 408 Request Timeout服务器等待请求超时。
- 409 Conflict请求与服务器当前状态冲突(如创建重复资源)。
- 415 Unsupported Media Type服务器不支持请求体的格式(如上传了不支持的文件类型)。
五、5xx(服务器错误状态码)
表示服务器处理请求时发生内部错误。
- 500 Internal Server Error服务器内部错误(最常见的服务器端错误,如代码异常)。
- 501 Not Implemented服务器不支持请求的功能(如未实现的接口方法)。
- 502 Bad Gateway网关 / 代理服务器收到上游服务器的无效响应(如反向代理后端服务故障)。
- 503 Service Unavailable服务器暂时不可用(如维护中,通常会包含
Retry-After
头提示重试时间)。 - 504 Gateway Timeout网关 / 代理服务器等待上游服务器响应超时。
总结
- 2xx:成功(客户端无需处理,直接使用响应)。
- 3xx:重定向(客户端需根据新 URL 重新请求)。
- 4xx:客户端错误(需检查请求参数、权限、URL 等)。
- 5xx:服务器错误(需服务器端排查问题,客户端可重试)。
理解状态码有助于快速定位前后端交互问题,是开发和调试的基础。