2xx: 成功响应
- 200:OK(成功)。请求成功
- 206:部分请求成功。
经常在实现断点续传或者将一个大文档分解为多个下载段同时下载的时候看到206状态码。
该请求必须包含 Range 请求头来指示客户端希望得到的内容范围。服务器会返回 Content-Range 响应头表明了返回的是文件的哪一部分, Content-Length 响应头表明了该部分文件的大小。(其实这里还会涉及到更多的响应头,详细内容)
3xx: 重定向
- 301:永久移动。表示所请求的URI资源路径发生改变,新的URL会在响应的Location头字段找到。
- 302:临时移动。表示所请求的URI资源路径临时改变,并且还可能继续改变。因此客户端在以后访问时还得继续使用该URI。新的URL会在响应的Location头字段找到。
- 304:未修改。告诉客户端,所请求的内容距离上次访问并没有变化,客户端可以直接从浏览器缓存里获取该资源。
4xx: 客户端错误
- 400:错误请求。因发送的请求语法错误,服务器无法正常读取。可能是前端的原因也有可能是后端原因。可能的原因:1. 前端提交数据的字段名称或者是字段类型和后台的实体类不一致。2. 前端提交的参数跟后台需要的参数个数不一致。3. GET请求,url后面的查询参数没有用 encodeURI 编码。 4. 请求参数是对象没有转换成json字符串类型。5. 服务器部署目录错误
- 401:未授权。需要身份验证后才能获取所请求的内容,类似于403,不同点是,401错误后,只要正确输入账号密码,验证即 可通过。
- 403:禁止访问。客户端没有权利访问所请求内容,服务器拒绝本次请求。
- 404:未找到。服务器找不到所请求的资源。
-
405:可能是请求方式不被允许,Response Header 后端 allow 里做了请求方式限制。
- 407:要求代理身份验证。类似于401,不过需要通过代理才能进行验证。
- 408:请求超时。
- 410:已失效。所请求的资源已经被删除。
- 414: 请求的 URL 过长(Request-URL Too Long),常见于 get 请求。
5xx: 服务器端错误
- 500:内部服务器错误。
- 501:未实现。服务器不支持该请求中使用的方法。
- 502:网关错误。服务器作为网关且从上游服务器获取到了一个无效的HTTP响应。
- 503:服务不可用。由于临时的服务器维护或者过载,服务器当前无法处理请求。
- 504:网关超时。
实际业务中响应状态错误处理
const statusText = {
401: '请重新登录',
403: '没有操作权限',
404: '请求不存在',
500: '服务器异常',
...
};
什么是业务状态码?
在响应数据外面再包一层业务状态码: