当前位置:  开发笔记 > 前端 > 正文

PUT的HTTP状态代码

如何解决《PUT的HTTP状态代码》经验,为你挑选了1个好方法。

一个PUT请求,可以有很多的成果,我想知道它的状态代码将是最适合他们每个人.

假设我想创建一个新资源,所以我做了类似的事情:

PUT http://example.com/resources/resource-1

我会得到一个HTTP 201因为已经创建了一个新资源.

现在我想更新这个资源,所以我做了同样的请求,新的内容:

PUT http://example.com/resources/resource-1

我得到HTTP 200或者HTTP 204,因为资源已经更新.但是,如果我再次使用相同的内容发送此请求怎么办?服务器应该返回HTTP 200还是HTTP 204什么都没有更新?

我知道,HTTP 200HTTP 204双方只是意味着该请求被成功处理,即使数据不改变请求可以(也应该)仍然可以成功处理.但有没有办法告诉客户端请求已成功处理但服务器端没有任何变化?如果有,是否应该用于PUT请求?PUT如果是幂等的,应该根据服务器端的实际处理返回不同的状态(只要在此处理过程中没有发生错误)?



1> CodeCaster..:

但有没有办法告诉客户端请求已成功处理但服务器端没有任何变化?

是的,但这不是状态代码的用途.

返回200 OK和实体的表示,或204 No Content并且不返回任何内容.

如果没有应用任何更改,请使用类似ETag的标题.客户端可以将ETag与其先前的值进行比较,并确定没有任何更改.


@Ray否,因为幂等性大约是服务器上的结果,或更具体地说,是请求URL所标识的资源的字节内容,而不是响应消息的内容。服务器上的结果在相同资源的连续PUT上不会更改。:)例如:[_“注意,幂等操作在服务器上产生相同的结果(无副作用),响应本身可能不相同(例如,资源的状态可能在请求之间改变)” _](http ://www.restapitutorial.com/lessons/idempotency.html)。
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有