学习http状态码

2019-12-19  本文已影响0人  squidbrother
概述

HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成。

restful风格状态码
状态码 说明
200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功
202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE]:用户删除数据成功
400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的
401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)
403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的
422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功
传统响应状态码

信息响应(100–199),
成功响应(200–299),
重定向(300–399),
客户端错误(400–499),
服务器错误 (500–599)

成功响应

状态码 说明
100 这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求,如果已经完成,则忽略它
101 该代码是响应客户端的 Upgrade 标头发送的,并且指示服务器也正在切换的协议
102 此代码表示服务器已收到并正在处理该请求,但没有响应可用
103 此状态代码主要用于与Link链接头一起使用,以允许用户代理在服务器仍在准备响应时开始预加载资源
200 请求成功
201 该请求已成功,并因此创建了一个新的资源。这通常是在POST请求,或是某些PUT请求之后返回的响应
202 请求已经接收到,但还未响应,没有结果。意味着不会有一个异步的响应去表明当前请求的结果,预期另外的进程和服务去处理请求,或者批处理
203 服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝
204 服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息
205 服务器成功处理了请求,且没有返回任何内容
206 服务器已经成功处理了部分 GET 请求
207 由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码
208 在 DAV 里面使用: propstat 响应元素以避免重复枚举多个绑定的内部成员到同一个集合
226 服务器已经完成了对资源的 GET 请求,并且响应是对当前实例应用的一个或多个实例操作结果的表示

重定向

状态码 说明
300 被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息
301 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一
302 请求的资源现在临时从不同的 URI 响应请求
303 对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源
304 如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码
305 被请求的资源必须通过指定的代理才能被访问
306 在最新版的规范中,306 状态码已经不再被使用
307 请求的资源现在临时从不同的URI 响应请求
308 这意味着资源现在永久位于由 Location: HTTP Response 标头指定的另一个 URI

客户端响应

状态码 说明
401 当前请求需要用户验证
402 此响应码保留以便将来使用,创造此响应码的最初目的是用于数字支付系统,然而现在并未使用
403 服务器已经理解请求,但是拒绝执行它
404 请求失败,请求所希望得到的资源未被在服务器上发现
405 请求行中指定的请求方法不能被用于请求相应的资源
406 请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体
407 与401响应类似,只不过客户端必须在代理服务器上进行身份验证
408 请求超时
409 由于和被请求的资源的当前状态之间存在冲突,请求无法完成
410 被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址
411 服务器拒绝在没有定义 Content-Length 头的情况下接受请求
412 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个
413 服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围
414 请求的URI 长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务
415 对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝
416 如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回416状态码
417 此响应代码意味着服务器无法满足 Expect 请求标头字段指示的期望值
418 客户端错误响应代码表示服务器拒绝冲泡咖啡,因为它是个茶壶(1998 年愚人节的玩笑)
421 该请求针对的是无法产生响应的服务器
422 请求格式良好,但由于语义错误而无法遵循
423 正在访问的资源被锁定
424 由于先前的请求失败,所以此次请求失败
425 服务器不愿意冒着风险去处理可能重播的请求
426 服务器拒绝使用当前协议执行请求,但可能在客户机升级到其他协议后愿意这样做
428 原始服务器要求该请求是有条件的
429 用户在给定的时间内发送了太多请求(“限制请求速率”)
431 服务器不愿意处理请求,因为它的 请求头字段太大( Request Header Fields Too Large)
451 用户请求非法资源,例如:由政府审查的网

服务端响应

状态码 说明
500 服务器遇到了不知道如何处理的情况
501 此请求方法不被服务器支持且无法被处理
502 此错误响应表明服务器作为网关需要得到一个处理这个请求的响应,但是得到一个错误的响应
503 服务器没有准备好处理请求
504 当服务器作为网关,不能及时得到响应时返回此错误代码
505 服务器不支持请求中所使用的HTTP协议版本
506 服务器有一个内部配置错误:对请求的透明内容协商导致循环引用
507 服务器有内部配置错误:所选的变体资源被配置为参与透明内容协商本身,因此不是协商过程中的适当端点
508 服务器在处理请求时检测到无限循环
510 客户端需要对请求进一步扩展,服务器才能实现它。服务器会回复客户端发出扩展请求所需的所有信息
511 状态码指示客户端需要进行身份验证才能获得网络访问权限
兼容性
兼容性

? : Compatibility unknown

上一篇下一篇

猜你喜欢

热点阅读