HTTP 状态码总共分为五大类,通过状态码分类可以快速定位问题发生在哪一层。
状态码的五种分类
| 分类 | 说明 |
|---|---|
| 1xx | 消息通知 |
| 2xx | 成功 |
| 3xx | 重定向 |
| 4xx | 客户端错误 |
| 5xx | 服务端错误 |
2xx 成功系列
| 状态码 | 含义说明 |
|---|---|
| 200 | 访问成功,服务器返回数据 |
| 201 | 访问成功,且服务器创建了资源(注册成功、订单创建成功) |
| 204 | 请求成功,没有返回资源(删除成功,无需返回资源) |
3xx 重定向系列
| 状态码 | 含义说明 |
|---|---|
| 301 | 永久重定向 |
| 302 | 临时重定向 |
| 304 | 浏览器本地缓存资源仍然有效,服务器告知浏览器无需重新下载资源 |
4xx 客户端错误系列
问题出在客户端(请求方)
状态码 含义说明 400 请求参数有问题(格式错误、缺少必填项) 401 未认证:未登录或者登录信息失效,没有身份 403 已经认证但是没有权限,有身份但是没有资格访问 404 访问的资源不存在 405 请求方式错误,例如用 GET 接口接收 POST 请求 429 请求过于频繁,触发限流
5xx 服务端错误系列
问题出在服务端(后端 / 网关)
状态码 含义说明 500 服务器内部异常,业务代码、数据库异常都会触发 502 网关错误,常见 Nginx 做转发时,后端服务宕机 503 服务不可用,例如系统维护、服务器过载 504 网关超时,后端服务处理请求时间过长,网关等待超时
小总结
- 1xx:中间临时消息,很少见
- 2xx:请求正常完成
- 3xx:需要跳转 / 走缓存
- 4xx :客户端问题,检查参数、登录状态、请求方法、地址
- 5xx :服务端问题,后端程序、数据库、网关服务异常