基本介绍
状态码(Status Code)和原因短语(Reason Phrase)用于简单描述请求的结果。常见的比如:
200 OK,表示请求成功;
404 Not Found表示请求的资源未找到。
原因短语(上面的ok 和Not Found)是对状态码的解释说明。
形如200这样的状态码,这里的3位数字中第1位数字,通常表示响应的类别(会有一两个例外),大致可以分成以下几类(完整的状态码表,参见http1.1-RFC6):
状态码含义1xx请求正被处理2xx请求成功处理3xx请求需要附加操作,常见的例子如重定向4xx客户端出错导致请求无法被处理5xx服务端处理出错
(4,5常被用在排查bug时前后端互相甩锅-_-!)下面详细介绍常用的状态码和原因短语
分类
2xx
200 OK
表示请求已经被正常处理,这个比较常见,就不多说了。
204 NO Content
表示请求成功,但是响应的报文中不含实体主体。通常用于只需要客户端向服务端发送信息,而不需要接受新信息的情况使用
(这么官方且抽象的描述显然不是我的风格),举例:
现在很常见的一种请求类型option,通常被用来做正式请求的预请求,这个请求只需要确认后续的请求能不能通过,即只需要一个结果,而不需要返回其他内容,这类请求成功时就会返回204。
相信大家小时候都经常考试,如果拿试题来打个比方,那么:
其他状态码可以比喻为填空题:客户端提问(发请求),服务端给出详细答案(返回实体内容)。
204可以理解为判断题:客户端提问(发请求),服务端给出判断,对或者错(只要响应头有状态码,不需要实体内容)
206 Partial Content
字面意思:只返回了请求资源的部分。这种情况必须提到提到一个请求头Range——在http的请求中,这个头部用来表示范围请求,例如:
\\’Range\\’:byte=5001-10000 // 表示本次要请求资源的5001-10000字节的部分
这种情况下,如果服务器接受范围请求并且成功处理,就会返回206,并且在响应的头部返回
\\’Content-Range\\’:bytes 5001-10000/10000 // 表示整个资源有10000字节,本次返回的范围为 5001-10000字节
3xx
301 Moved Permanently
字面意思:资源被永久重定向了。这种情况下响应的头部字段Location中一般还会返回一个地址,用来表示要新地址。例如:
客户端发起一个请求,要访问a站点,此时收到的响应如下:
301 Moved Permanently
…
Location:`b.com`
…
//上述内容表示:亲,您请求的资源已经永久转移啦,这边建议您去新的地址b.com访问呢,
以上就是朝夕生活(www.30zx.com)关于“Http状态码整理”的详细内容,希望对大家有所帮助!