Web防火墙经常遇到各类状态码,客户不知道什么原因。本文根据官方文档,整理出所有HTTP状态码及其含义,以及异常状态码常见的处理办法,提升问题处理效率。
参考文档:https://www.restapitutorial.com/httpstatuscodes.html
由于部分4xx和5xx状态码较多,且平时没有遇到过,故部分没有写出,需要查看全部的可以查阅参考文档
通俗的说一下各个状态码的意思:
1xx 请求过程或者协议转换
2xx 请求成功了
3xx 请求被转移了
4xx 请求就到不了服务器,或者服务器拒绝了
5xx 请求到服务器,服务器没有想响应或者响应出问题了
常见于websocket,协议转换
301 永久性转移,简单来说就是转移前的网站已经没了
302 暂时性转移,转移前的站点还在,比如http跳转到https一般情况使用302
区别:遇到301时搜索引擎会抓取新内容,并换上新URL;遇到302时,因为其暂时性,搜索引擎会抓取新内容,保留了原来的URL
307的定义实际上和302是一致的,唯一区别在于,307状态码不允许浏览器将原本POST的请求重定向到GET请求上。
308与301定义一致,唯一的区别在于,308状态码不允许浏览器将原本为POST的请求重顶到GET请求上。
400 是bad request,一般来说,出现这种情况是web服务器没有对应的配置,比如没有配置域名,没有配置对应的协议(http/https没配但是使用对应访问访问)
未授权,比如nginx配置了账号密码访问,但是没有输入账号密码
禁止访问,比如nginx配置了deny,或者WAF配置了拦截
资源没有找到,常见于路径不正确,或者使用了websocket的网站没有开启websocket功能
客户端主动断开连接,一般出现这个状态码,需要排查客户端网络是否有问题,超时时间配置过短
web服务的内部错误,具体要看各个web服务的错误日志,比如操作系统打开文件过多,脚本语法错误等等
服务器返回异常,web服务器常伴有recv() failed (104: Connection reset by peer) while reading response header from upstream类似的日志,常见的原因比如php处理不过来请求了,或者代理转发到后端的时候安全组没有开放
服务不可用,常见于apache,比如连接数不够
这里只是简述了日常遇到的问题,后续持续更新。
Gateway Time-out的含义是所请求的网关没有请求到,代理服务器出现问题,以nginx+php架构为例,504是请求在nginx这一层出现问题
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。