推荐一首歌
非常喜欢前奏
1:状态码的作用?
- 职责是当客户端发起请求时候,描述请求返回结果。根据状态码,客户端可以知道服务端是正确处理了请求,还是返回了错误。
2:状态码的分类
- 1XX(信息性状态) 接受的请求正在处理(见到的很少)
- 2XX(成功状态) 请求正常处理
- 3XX(重定向) 需要进行附加操作完成请求
- 4XX(客户端错误) 服务器无法处理请求
- 5XX(服务端错误) 服务器处理请求失败
3:常用状态码讲解
- 200 服务端成功处理客户端请求
- 204 服务端成功处理客户端请求,但是没有任何返回(表现在浏览器上就是,不管是form还是a标签。当返回 204 时候,页面都会不会进行任何跳转)
- 206 客户端进行了 范围请求( Content-Range ) 并被成功处理
- 301 永久重定向,在搜索引擎抓取时,会将旧地址换位新地址。(内容也会变化)
- 302 临时重定向,网站中大量的 302 会被认为是恶意网站,会被搜索引擎降权处理,虽然 302 标准禁止从 POST 变为 GET ,但是实际使用时,大家并不准守。
- 303 和 302 有着相同的功能,但是 303 明确了应当使用 GET 方法来获取资源。
- 304
- 307 和 302 有着相同的功能,但是会准守 不会从 POST 变为 GET 的标准,但是 对于处理响应,每个浏览器都有不同的表现。
PS:4XX 错误,客户端是问题所在。
- 400 表示客户端请求报文存在错误,比如后端需要的是 JSON 类型。前台却传了一个 XML ,参数不一致等等。
- 401 未授权,也就是没有权限。
- 403 服务器拒绝访问,但是却没有给出具体理由,很多种情况都会出现这个问题。具体原因可以写在对应的实体中。
- 404 资源无法找到。
- 405 方法不被允许
PS:5XX 错误,服务端是问题所在
- 500 服务器内部错误(这个描述很笼统,具体的问题还时需要一步步排查来看)
- 502 出现502错误,通常意味着一两个机器已经不正确,简单点说,就是机器挂掉了。理论点儿说,nginx执行请求的时候,却收到了上游服务器的无效响应。或者并发导致的无法响应。
- 503 表明该站点可能目前正在维护/超负荷等等,目前无法处理请求,过一段时间再看
- 504 网关超时。可能由于接口耗时过长,导致配置时间超时