HTTP协议状态码

我们经常会听到HTTP协议,我们也每天都会用到HTTP协议,那么HTTP的面纱下到底是什么呢?我们今天就先来聊聊HTTP协议的状态码。

我们继续上回的故事~上回书说到,成哥给邓哥介绍了一个女朋友(铁锤妹妹),然后害羞的邓哥写了一封信,让思彤帮忙送给铁锤妹妹。

这个时候邓哥就相当于计算机世界中的浏览器,
铁锤妹妹相当于计算机世界中的服务器。
邓哥给铁锤妹妹送的信,
就相当于是浏览器给服务器发送的请求,
信件的内容就是我们发出请求的内容。

思彤到了铁锤妹妹家,在铁锤妹妹家门口喊出那句暗号:“天王盖地虎!”。这时有很多种可能性。我们来依次看看这些可能性~

如果喊完暗号之后,没有人开门,这时候隔壁老王出来了,对思彤说:”铁锤搬家了,搬到了如花大街200号~“

        这时候思彤就要再去如花大街200号送信,这个过程就叫做永久移动(Moved Permanently),对应的HTTP状态码是301。如果我们的浏览器是将这个URL收藏了,那么当接收到301的状态码之后,浏览器应该会修改链接,修改为新的URL。当然3XX的状态码不只有301。

如果铁锤妹妹并没有搬家,而是暂时去闺蜜家住了。

        那么这种情况叫做临时重定向,对应的状态码为302。还有个状态码和302个功能很相似。

如果隔壁王大爷说,铁锤去闺蜜家住了,但是如果不是女生不给开门~

        这种情况中,铁锤妹妹去闺蜜家了,所以需要临时重定向,但是这种情况和302的临时重定向有什么区别呢?区别就在于请求的方式不一样。这里男生送信就是POST请求方式,女生请求就是GET请求方式。这时候的状态码就是303,表示需要临时重定向,并且必须用GET方式请求。

当然还有很多的可能性:比如说铁锤妹妹根本就没住在这~

        这种情况就叫做找不到系统资源,对应的HTTP状态码是大名鼎鼎的404。4XX家族还有很多状态

还有一些很有趣的情况,比如思彤到了铁锤妹妹家,喊错了暗号,喊成了:“天王盖地鼠~”,这时候铁锤妹妹听到这个暗号感觉外面有个神经病,这时候也不会给开门,直接让思彤走开~

        这种情况就是我们的协议格式出现了问题,这种情况下返回的状态码是:401

再比如,思彤到了铁锤妹妹家,喊出了口号:“天王盖地虎!”,但是今天铁锤妹妹心情不好,就是不开门,让思彤走开,无论你怎么说好话也叫不开门~(女生的心思你难猜~)

        这种情况就相当于是服务器拒绝了请求,HTTP状态码为:403。但是这个状态很有趣,这个状态是可以在返回体中给出拒绝的原因,但是通常情况下,这个状态码是在服务器不想给出原因的情况下使用的。所以这种情况很符合一个女生生气的情况~必然是有原因的,但是不会轻易告诉你~

 我们再假设,思彤到了铁锤妹妹家,但是铁锤妹妹正在打电话,没有空理思彤~

        由于我们之前设定好的,邓哥相当于浏览器,铁锤妹妹相当于服务器,所以这个时候的情况就是服务器繁忙。服务器繁忙对应的状态码是503一般在服务器负载时会返回503状态码。

 

思彤到了铁锤妹妹家,率先说出暗号:“天王盖地虎~”。铁锤妹妹答道:“邓哥一米五~”思彤:“宝塔镇河妖~”铁锤妹妹:“邓哥长不高~”对上暗号之后,思彤将信递给了铁锤妹妹~(思彤终于可以把信交给铁锤妹妹了~)但是这个时候出了个问题~铁锤妹妹不识字。。。这样就没法继续下去了。。。

        前面对暗号的过程,就好像是解析HTTP协议的过程。后面读信件的过程就相当于是获取出数据之后进行处理的过程。但是由于铁锤妹妹不识字没法正常的读信。这就像是服务器程序出现了错误,在读取信件的过程中发生了错误。所以这个时候报出的HTTP状态码为:500

我们假设思彤和铁锤妹妹对上了暗号,铁锤妹妹也认识字~铁锤妹妹仔读了这封信之后,给邓哥回了一封信。信的内容只有四个字:“做梦去吧~”。(经历了这么多的磨难,终于得到铁锤妹妹的回信了~)

        当浏览器要发送的内容被服务器端接收并处理之后,得到服务器端返回的消息。铁锤妹妹的回信就相当于是服务器端返回的信息。这样的一个来回就完成了一次HTTP请求。这个时候返回的状态码为:200

 当思彤完成第一次送信之后,邓哥看到了铁锤妹妹的回信,觉得好桑心~于是决定再写一封信给铁锤妹妹。当思彤又一次送信给铁锤妹妹的时候,这次铁锤妹妹并没有直接回信,而是告诉思彤,还让邓哥看之前的那封信就行~(铁锤妹妹已经懒得写了~)

        当浏览器多次访问同一个资源的时候,如果第一次请求的结果还在缓存,还没有过期,那么在此访问这个资源的时候,为了减少网络传输的消耗,如果这个资源没有被修改过,则可以让浏览器继续使用之前缓存的内容,这样就不用再将资源发送一遍了,所以就减少了很多的网络开销。这个时候服务器返回的状态码为:304。虽然这个状态码也是3XX系列的,但是我们可以发现这个状态码看似和重定向没有什么关系~但是我们可以理解为,服务器要求浏览器将请求重定向到浏览器本身。

 

以上的十个状态是HTTP状态码中最常见的一些状态码,也是我们Web前端初学者必须要记住的状态码。当然HTTP协议的状态码远远不止这些。

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值