状态码详解
介绍
HTTP状态码(HTTP Status Code)是用来表示Web服务器响应http请求状态的数字代码。
常见状态码
100-199 用于指定客户端相应的某些动作
200-299 用于表示请求成功。
300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。
400-499 用于指出[客户端错误]。
500-599 用于指出[服务器端错误]。
200 OK 服务器成功返回网页,这是成功的http请求,返回的标准状态码
301 永久跳转,所有请求的网页将永久跳转到被设定的新的位置
403 禁止访问,这个请求是合法的,但是服务器端因为匹配了预先设置的规则而拒绝响应客户端的请求,此类问题一般为服务器或服务权限配置不当所致。
404 服务器找不到客户端请求的指定页面,可能是客户端请求了服务器上不存在的资源导致。
500 内部服务器错误,服务器遇到了意料不到的情况,不能完成客户的请求。这是一个较为笼统的报错,一般为服务器的设置或者内部程序问题导致。例如:SElinux开启,而又没有为http设置规则许可,客户端访问就是500。
502 坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成响应网关服务器。一般为反向代理服务器下面的节点出问题导致。
503 服务当前不可用,可能因为服务器超载或停机维护导致,或者是反向代理服务器后面没有可以提供服务的节点。
504 网关超时,一般是网关代理服务器请求后端服务时,后端服务没有在特定的时间内完成处理请求,一般是服务器过载导致没有在指定的时间内返回数据给前端代理服务器。
502和504区别
按照 客户端---slb---nginx---后端 架构来讲
502
坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成响应网关服务器。一般为反向代理服务器下面的节点出问题导致。无法将请求交给后端,链路不对,连接断开,服务直接挂了。
- slb代理到nginx,网络不通,nginx服务挂了,链路不对连接断开,slb直接会返回502,
- nginx代理到后端,网络不通,后端服务挂了,链路不对连接断开,返回502。
504
nginx超过了自己设置的超时时间,不等待后端的返回结果,直接给客户端返回504错误。但是后端依然还在处理请求,这是服务端程序的问题。