HTTP响应状态码

web老猴子 2022-08-06 06:14:16 阅读数:405

httpCSDN响应状态technology-development

导言

上篇我们说的是HTTP的请求方法,主要介绍的是HTTP/1.1版本的8种基本请求方法。客户端发送请求之后,服务器会做出对应的响应,是请求成功了,还是失败了,如果是失败了,是什么原因导致的呢?这篇我们要说的响应状态码,就包含有成功或某种情况下的失败对应数字码。

还记得我们在说起始行的时候,状态行中就包含有三个关键信息:协议版本、状态码和原因解释。其中状态码和原因就是我们今天要说的。

响应状态码

RFC文档标准中规定状态码是三位数,但也并非简单的从000~999,这样状态码足足有1000个,太多了,不利于应用。其实标准中仅定义了41个状态码,但状态码的定义是开放的,可以自行有效扩展。

这么多状态码大体分为五类,分别是以1到5开头,下面我们来说下这五类的大体含义:

1xx

1xx类是提示信息,表示的是协议处理的中间状态,还有后续操作,这个在实际开发中可能比较少见。

2xx

2xx这个是最常见的之一,表示服务端成功响应了客户端的请求,这也是客户端最希望看到的结果。

200 OK:表示请求一切正常,有正常的返回数据。

204 Not Content:也是一种正常状态,和200 OK类似,只是响应头中没有body数据。

‘206 Partial Content’:是HTTP分块下载和断点续传的基础。它其实也表示请求的正常状态,只是响应的body数据是整块数据的片段。它一般有伴随着头字段Content-Range返回,如:

Content-Range: bytes 0-99/2000

含义是本次请求共返回了2000个字节中的前100个。

3xx

3xx表示的是客户端的请求资源发生了变动,需要通过重定向来找到最新的资源。比较常见的状态码是301和302,它们虽然都是重定向,但也有区别:

301 Moved Permanently:表示的是永久重定向,资源已经不存在了,以后都需要获取新的资源。

302 Found:临时性的,可能原资源服务器暂时需要维护。

4xx

4xx表示的是客户端发送的请求报文有错误,服务端无法处理请求。算是一类错误码。

400 Bad Request:是一个笼统的错误码,具体原因不清楚,没有明确返回。

403 Forbidden:是服务器禁止客户端请求当前资源。

404 Not Found:这个很常见,表示客户端请求的资源在服务器不存在。

5xx

5xx是服务器错误,客户端请求报文没问题,服务器内部出错了。常见状态码有:

500 Internal Server Error:这也是是错误的通用返回错误码,具体错误未知。

501 Not Implemented:功能未实现。

502 Bad Gateway:服务器作为网关或者代理时出现的错误,服务器本身服务正常,但访问的后端服务器发生了错误。

503 Service Unavailable:表示当前服务器很忙,暂时无法响应请求。

版权声明:本文为[web老猴子]所创,转载请带上原文链接,感谢。 https://blog.csdn.net/web220507/article/details/126182716