http状态码汇总
Posted 夜尊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http状态码汇总相关的知识,希望对你有一定的参考价值。
http状态码是前端了解一个请求(页面或者数据等等)最直接的反应,也是目前面试中比较常见的问题。
状态码主要分为5大类。分别是:
一、1xx (信息性状态码) 表示接收的请求正在处理。代表性示例就是webscoket。
二、2xx (成功状态码) 请求正常处理完毕。
三、3xx (重定向状态码) 需要进行附加操作以完成请求。
四、4xx (客户端错误状态码) 服务器无法处理请求。
五、5xx (服务器错误状态码) 服务器处理请求出错
实际上仅仅记录在RFC2616上的HTTP状态码就40种,再加上webDAV和附加HTTP状态等扩展,数量有60余种。实际上常使用的只有14种。如下:
1、状态码 200
可以理解为,客户端发起请求,服务器处理完毕,并将客户端需要的资源返回给客户端解析。
2、状态码 204
可以理解为,客户端发起请求,服务器处理完毕。但是,没有资源返回。
3、状态码 206
可以理解为,客户端只需要所请求资源中的指定部分数据。如:一个请求会返回0-9的数字。而客户端在请求头中添加Content-Range中设置只要前3个字节的数据。那么服务器只返回0-3的数字。
4、状态码 301
永久重定向。可以理解为。资源的URI变了,服务器会告诉客户端让其缓存最新的资源URI。
5、状态码 302
临时重定向。可以理解为,后端做了负载均衡。有a,b,c,d四台服务器担任负载均衡,资源位于a上。但是,前端的请求有时会发送到a服务器上,有时会发送到b,c,d服务器。这次请求没到a下次有可能会到a。
6、状态码 303
跟302很像,只是这个状态码明确表示客户端应该采用get方法获取资源。
7、状态码 304
这个状态码是3xx中跟重定向无关的。它的意思是说,一个请求过来。服务器返回资源,并告诉客户端让它缓存这个资源,此时状态码为200。下次在请求时,服务器会比对资源是否发生变化。如果没有,就会返回304告诉浏览器去缓存里面取资源。因为资源相同没必要重新返回。
8、状态码 307
临时重定向。跟302很像。不同点在于此请求会严格按照浏览器标准执行,不会出现post变get的情况。因为在请求的时候post是禁止变更为get的。但是大家都没有遵守这个规则。307将强制执行此规则。
9、状态码 400
表示客户端请求报文存在语法错误,需要客户端对错误进行修正。然后在发送请求。
10、状态码 401
表示这个请求需要认证。比如,一个接口需要用户登录了才能访问。没登录访问这个接口就会401,提示需要登录的认证。
11、状态码 403
表示拒绝对资源进行访问。比如:对比401,这个资源只限制管理员才有权限访问。一般用户不能访问。类似权限限制了当前的请求对资源的访问。
12、状态码 404
一般表示服务器上没有找到请求的资源。或者服务器拒绝请求,并且不想告诉客户端是什么理由拒绝的。
13、状态码 500
表示执行的过程中服务器发生了错误,或者web应用存在的BUG或某些临时故障。
14、状态码 503
表示服务器暂时处理停机维护的阶段,暂时不能处理请求。如果知道解除维护的时间。最好将时间写入响应头的RetryAfter中。
正确的根据场景返回状态码才能让通信双方在出现问题的时候方便排查问题。所以,状态码跟状况一定要想对应,而不是随意返回状态码。
以上是关于http状态码汇总的主要内容,如果未能解决你的问题,请参考以下文章