http状态码的解释

  对于web程序员来说,http肯定是一块比较重要的地方,本章说下http的状态码。ps:详细了解http部分,建议读《http权威指南》,这是圣经了对于http,不过如果你是新手,对这一块不是很熟悉的话,我的建议是先读《图解http》,再去读《权威指南》。我这块就是参考图解http写的。

  http状态码

  一.类别

    

   类别  说明
 1xxx  informational(信息性状态码)  请求正在请求
 2xxx  success(成功)  请求正常处理完毕
 3xxx  redirection(重定向)  需要附加操作来完成请求
 4xxx  client error(客户端错误状态码)  服务器无法处理请求
 5xxx  server error(服务器错误状态码)  服务器处理请求出错

  类别就是上面几种,下面具体说说各个状态码

  二.状态码详解

    目前状态码的总数很多,我这里说说常用的几种

    200 ok,这个就不说了,表示请求完成,但是对于各个http方法还是有点区别,比如get是请求实体会返回,但是用head方法的话,响应是只返回首部的

    204 no content ,这个表示请求也成功了,但是不含实体主体部分,也不允许返回实体部分,一般用来客户端向服务端发送信息,而对客户端不需要发送新的信息

    206 partial content,这个比较特殊,是属于对资源的一部分请求,这个用来比如图片之类的咯上次我请求了一部分突然断掉了,这次我只要后半部分之类的,不过这个需要加上content-range来说明

    301,302,303,307,这几个其实都是表示重定向,但是是有区别的,一般的用的比较多的就是301,302,301:表示永久重定向,302表示临时重定向,

303和307感觉上是302的变种,用的比较少,我遇到的次数也不是很多,简单说下区别,303表示希望用get方式获取资源(不知道是不是所有人都遵循这个规则),307会根据浏览器要求不会从post变为get,对了301和302明确表示不希望从post变为get访问

    还有个304需要说明下,304跟重定向无关,表示允许访问服务器,但未满足的情况下,不返回任何实体

    400 bad request ,一般返回表示服务器无法理解这个请求,应该是出错了,需要客户端修改内容后发送

    401 unauthorized,表示没有权限,需要认证,一般这个我写rest API时候有时候会用这种方法

    403 forbidden,表示被服务器拒绝了,一般不会给你原因,但是若是想会在返回的实体里面写的

    404 not found,这个就不说了

    500 internal server error,这个也不说了

    503 service unavailable,表示服务器暂时不可用,停机维护之类的,不过你要是作为后端知道啥时候恢复的话,在返回的实体里面加上RetryAfter更好了

  对于状态码和状况不一致的情况,也是经常遇到的,这个就需要自己去判别了。。最后安利一个工具,如果你只想看statusCode的话,谷歌下有个扩展叫Http Status。。

猜你喜欢

转载自www.cnblogs.com/leihuang/p/8917387.html