趣解http状态码

A哥写了一封信,让B哥帮忙送给C妹妹。

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

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

1  、如果喊完暗号之后,没有人开门,这时候隔壁老王出来了,对B哥说:”C妹妹搬家了,搬到了如花大街200号~“

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

2 、如果C妹妹并没有搬家,而是暂时去闺蜜家住了。

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

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

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

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

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

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

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

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

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

7 、 我们再假设,B哥到了C妹妹家,但是C妹妹正在打电话,没有空理B哥~

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

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

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

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

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

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

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

以上的十个状态是HTTP状态码中最常见的一些状态码,也是我们Web前端初学者必须要记住的状态码。当然HTTP协议的状态码远远不止这些。我们之后讲HTTP协议的文章中,会更详细的为大家介绍HTTP协议。

猜你喜欢

转载自blog.csdn.net/weixin_42418196/article/details/102840517