HTTP常见状态码

HTTP常见状态码

这里主要介绍运维过程中经常遇到的状态码。并通过业界流行的Nginx进行模拟实现,让大家能够对HTTP状态码有一个理性的认识(必会,牢记)

实验场景

操作系统 centos 7.3

实验用的软件包 nginx php-fmp php http-tools(直接使用yum仓库原生软件包)

yum -y install  nginx php-fmp php http-tools

2xx状态码

2xx 类型的状态码表示一个HTTP请求成功(比如 200)

3xx状态码

3xx 类型状态码主要表示HTTP请求URL重定向行为(常见301,301,304)

301状态码

URL 永久性重定向,在nginx中通过rewrite指令结合permanent标记实现

302状态码

URL 临时重定向,在nginx中通过rewrite指令结合redirect标记实现

301与302的区别

301与302状态码都是URL重定向,其中301是永久,302是临时。不管是永久还是临时对于用户来说两者没有任何感官上的区别。都是在访问链接A时跳转到了链接B,并看到浏览器上的地址同样由A变成了B。

它们主要区别在于搜索引擎,搜索引擎是要建立索引规则和权重的,如果链接A被设定为永久重定向到B,那搜索引擎可以确定A的地址永久改变了,就会把B当做唯一有效的目标地址。这时搜索引擎会把老地址相关信息带到新地址,同时在搜索引擎库中彻底废弃原先的老地址,而搜索引擎对于302则没有这样的行为

304状态码

客户端缓存,通过nginx中的expires指令完成

4xx状态码

4xx 类型状态码主要表示客户端错误,客户端发起HTTP请求头不完整,客户使用的用户名,密码错误等,都会被标记为客户端错误。(常见400,401,403)

400状态码

当web服务器遇到不完整的HTTP请求头时,会返回400状态码。请求头信息或者Cookis信息过大,通常是导致不完整的请求头的原因。(由web服务器端的配置决定)

在nginx中这类web服务器中,决定这个值的配置字段是large_client_header_buffers。通过调整这个字段,可以模拟400状态码

401状态码

权限验证错误。就是需要用户名,密码等权限认证,但是客户端又没有通过认证。在nginx中想要模拟必须将nginx调整为认证模式。

403状态码

没有权限访问。文件权限过小或者人为设置不允许某个ip地址访问等,都会出现403状态码

404状态码

文件不存在,当我们访问一个不存在的文件时,就会出现404状态码。

499状态码

499这个状态码不是htto协议中定义的标准状态码,而是nginx自己定义的一个状态码

当客户端主动断开连接的时候,nginx就会返回499的状态码。按照这个状态码的定义,只要nginx返回结果之前主动断开客户端连接,就会出现499状态码。

5xx状态码

5xx 类型的状态码主要表示服务端错误,此时就不需要纠结客户端问题

500状态码

服务器端代码出现异常。代码语法错误,连接不上数据库等就会出现500状态码

502状态码

502 Bad Gateway。nginx 502错误的原因比较多,主要是因为在代理模式下后端服务器出现问题引起的。这个错误一般都不是nginx本身的问题,一定要从后端找原因。比如出现一种后端PHP-FPM进程挂掉的情况,就会出现502状态码。

504状态码

504 Gateway Time-ou 超时 当PHP-FPM的执行时间大于nginx的读超时时间,就会出现504状态码
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值