学习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
- : See implementation notes.