Answers:
对于PUT请求:HTTP 200或HTTP 204应该暗示“资源更新成功”。
对于DELETE请求:HTTP 200或HTTP 204应该暗示“资源删除成功”。还可以返回HTTP 202,这意味着该指令已被服务器接受,并且“资源已标记为删除”。
如果修改了现有资源,则应发送200(确定)或204(无内容)响应代码>来指示成功完成请求。
如果响应包含描述状态的实体,则成功响应应为200(确定);如果尚未执行该操作,则为202(接受);如果已执行该动作但响应不包括该响应,则返回204(无内容)。一个实体。
HTTP 200 OK:成功的HTTP请求的标准响应。实际响应将取决于所使用的请求方法。
HTTP 204 No Content:服务器成功处理了请求,但未返回任何内容
简短答案:对于PUT和DELETE,您都应该发送200(确定)或204(无内容)。
长答案:这是一个完整的决策图(单击放大)。
这里有一些提示:
删除
200(如果要在响应中发送一些其他数据)或204(推荐)。
202删除操作尚未提交。
如果没有要删除的内容,请使用204 或 404(DELETE操作是幂等的,删除已删除的项目是成功的操作,因此您可以返回204,但确实幂等并不一定意味着相同的响应)
其他错误:
- 400 错误的请求(语法错误或错误的查询很奇怪,但可能)。
- 401 未经授权的身份验证失败
- 403 禁止:授权失败或无效的应用程序ID。
- 405 不允许。当然。
- 409 在复杂的系统中可能发生资源冲突。
- 而501,502在错误的情况下。
放
如果您要更新集合的元素
- 200/204,其原因与上述删除相同。
- 202,如果尚未提交操作。
所引用的元素不存在:
- PUT可以为201(如果您创建了元素,因为这是您的行为)
404如果您不想通过PUT创建元素。
400 错误的请求(格式错误的语法或错误的查询,比DELETE的情况更常见)。
- 401 未经授权
- 403 禁止访问:身份验证失败或无效的应用程序ID。
- 405 不允许。当然。
- 409 在复杂的系统中,例如在DELETE中,可能发生资源冲突。
- 422 无法处理的实体有助于区分“错误请求”(例如,格式错误的XML / JSON)和无效字段值
- 而501,502在错误的情况下。
RFC 2616描述了要使用的状态码。
不,并非总是200。
由于问题深入探讨了DELETE是否 “应该”返回200 vs 204,因此值得考虑的是,有些人建议返回带有链接的实体,因此优先选择200。
“ API应该代替返回204(无内容),它应该会有所帮助,并建议要去的地方。在这个示例中,我认为可以提供的一个显而易见的链接是到“ somewhere.com/container /”(减去“ resource”) ”-客户刚刚从中删除资源的容器。也许客户希望删除更多资源,所以这将是一个有用的链接。”
http://blog.ploeh.dk/2013/04/30/rest-lesson-learned-avoid-204-responses/
如果客户端遇到204响应,则它可以放弃,转到API的入口点,或者返回到其之前访问的资源。两种选择都不是特别好的。
我个人不会说204错误(作者也没有;他说“烦人”),因为在客户端进行良好的缓存有很多好处。最好是保持一致。
这是一些状态代码,您应该以自己的知识来知道这些状态代码。
- 100 继续
- 101 交换协议
- 102 处理
- 103 早期提示
- 200 OK
- 创建了201
- 202 接受
- 203 非权威信息
- 204 没有内容
- 205 重设内容
- 206 部分内容
- 207种 多状态
- 已报告208
- 使用226 IM
- 300种 选择
- 301 永久移动
- 找到302个
- 303 查看其他
- 304 未修改
- 305 使用代理
- 306 切换代理
- 307 临时重定向
- 308 永久重定向
- 400 错误的要求
- 401 未经授权
- 402 需要付款
- 403 禁止
- 找不到404
- 405 方法不允许
- 406 不可接受
- 要求407 代理身份验证
- 408 请求超时
- 409 冲突
- 410 去了
- 411 所需长度
- 412 前提条件失败
- 413 有效负载过大
- 414 URI太长
- 415 不支持的媒体类型
- 416 范围不满足
- 417 期望失败
- 418 我是茶壶
- 420 方法失败
- 421错误的 请求
- 422 无法处理的实体
- 423已 锁定
- 424 依赖失败
- 426 需要升级
- 428 需要先决条件
- 429 请求太多
- 431 请求标头字段太大
- 451 由于法律原因不可用
- 500 内部服务器错误
- 501 未实施
- 502 错误的网关
- 503 服务不可用
- 504 网关超时
- 505 不支持 Http版本
- 506 Varient还可以协商
- 507 存储空间不足
- 508 检测到环路
- 510 未扩展
- 要求511 网络身份验证
修改资源后,响应代码应为200(“确定”)。如果资源状态以将URI更改为资源的方式更改(例如,重命名用户帐户),则响应代码为301(“永久移动”),并且Location标头应提供新的URI。
删除对象后,响应代码 应为200(“确定”)。
请点击以下链接获取更多详细信息- 休息状态码