我应该为UPDATE(PUT)和DELETE(例如,产品成功更新)设置什么状态代码?
当前回答
RFC 2616描述了要使用的状态代码。
不,它并不总是200。
其他回答
对于PUT请求:HTTP 200,HTTP 204应暗示“资源更新成功”。如果PUT请求创建了新资源,则返回HTTP 201。
对于DELETE请求:HTTP 200或HTTP 204应表示“已成功删除资源”。
HTTP 202也可以通过任一操作返回,并暗示该指令已被服务器接受,但尚未完全应用。稍后操作可能会失败,因此客户端不应该完全认为它是成功的。
如果客户机接收到一个它无法识别的状态代码,但它以2开头,则应将其视为200 OK。
看跌,看跌如果修改了现有资源,则应发送200(OK)或204(No Content)响应代码,以指示请求成功完成。
删除如果响应包括描述状态的实体,则成功响应应为200(OK);如果动作尚未实施,则为202(已接受);如果已实施动作但响应不包括实体,则为204(无内容)。
来源:IETF:RFC-9110方法定义
HTTP 200 OK:成功HTTP的标准响应请求。实际响应将取决于使用的请求方法。HTTP 204无内容:服务器已成功处理请求,但未返回任何内容
来源:HTTP状态代码列表:2xx成功
以下是一些提示:
删除
200(如果您想在响应中发送一些附加数据)或204(推荐)。202删除的操作尚未提交。如果没有要删除的内容,请使用204或404(delete操作是幂等的,删除已删除的项是操作成功的,因此可以返回204,但幂等并不一定意味着相同的响应)其他错误:400错误请求(格式错误的语法或错误的查询很奇怪,但可能)。401未授权身份验证失败403禁止:授权失败或应用程序ID无效。405不允许。当然409资源冲突在复杂系统中可能发生。以及501、502,以防出错。
PUT
如果要更新集合的元素200/204,原因与上述删除相同。202,如果操作尚未提交。引用的元素不存在:PUT可以是201(如果您创建了元素,因为这是您的行为)404如果您不想通过PUT创建元素。400错误请求(格式错误的语法或比DELETE更常见的错误查询)。401未授权403禁止:身份验证失败或应用程序ID无效。405不允许。当然409资源冲突在复杂系统中可能发生,如DELETE。422不可处理实体它有助于区分“错误请求”(例如格式错误的XML/JSON)和无效字段值以及501、502,以防出错。
这是一些状态代码,您应该知道这些代码。
1XX信息响应
100继续101交换协议102处理103早期提示
2XX成功
200好201已创建202已接受203非权威信息204无内容205重置内容206部分内容207多状态208已报告226使用的IM
3XX重定向
300多种选择301永久移动找到302303参见其他304未修改305使用代理306交换机代理307临时重定向308永久重定向
4XX客户端错误
400错误请求401未授权402所需付款403禁止404未找到405不允许的方法406不可接受407需要代理身份验证408请求超时409冲突410消失411所需长度412前提条件失败413有效负载太大414 URI太长415不支持的媒体类型416范围不满足417预期失败我是茶壶420方法失败421误导请求422不可处理实体423锁定424失败的依赖项426需要升级428所需的前提条件429请求太多431请求标头字段太大451因法律原因不可用
5XX服务器错误
500内部服务器错误501未实施502坏网关503服务不可用504网关超时505 Http版本不受支持506变化也协商507存储不足508检测到循环510未扩展511需要网络认证
2014年6月,RFC7231废除了RFC2616。如果您正在通过HTTP进行REST,那么RFC7231将准确描述GET、PUT、POST和DELETE的预期行为
除了200和204之外,205(重置内容)可能是有效的响应。
服务器已完成请求,用户代理应重置导致发送请求的文档视图。。。[例如]清除输入的形式。
推荐文章
- 为什么说“HTTP是无状态协议”?
- 我需要HTTP GET请求的内容类型报头吗?
- 如何让Chrome允许混合内容?
- 正确的方式删除cookies服务器端
- REST DELETE真的是幂等的吗?
- 了解Chrome网络日志“停滞”状态
- 用户代理字符串可以有多大?
- 什么是接受* HTTP报头q=0.5 ?
- HTTP状态码200(缓存)和状态码304之间有什么区别?
- HTTP POST返回错误:417“期望失败。”
- 什么是HTTP中的“406-不可接受的响应”?
- 最好的轻量级web服务器(只有静态内容)的Windows
- HTTP POST在Java中使用JSON
- 哪些HTTP方法与哪些CRUD方法相匹配?
- 使用HTML形式的PUT方法