一个PUT请求,可以有很多的成果,我想知道它的状态代码将是最适合他们每个人.
假设我想创建一个新资源,所以我做了类似的事情:
PUT http://example.com/resources/resource-1
Run Code Online (Sandbox Code Playgroud)
我会得到一个HTTP 201因为已经创建了一个新资源.
现在我想更新这个资源,所以我做了同样的请求,新的内容:
PUT http://example.com/resources/resource-1
Run Code Online (Sandbox Code Playgroud)
我得到HTTP 200或者HTTP 204,因为资源已经更新.但是,如果我再次使用相同的内容发送此请求怎么办?服务器应该返回HTTP 200还是HTTP 204什么都没有更新?
我知道,HTTP 200和HTTP 204双方只是意味着该请求被成功处理,即使数据不改变请求可以(也应该)仍然可以成功处理.但有没有办法告诉客户端请求已成功处理但服务器端没有任何变化?如果有,是否应该用于PUT请求?PUT如果是幂等的,应该根据服务器端的实际处理返回不同的状态(只要在此处理过程中没有发生错误)?
Cod*_*ter 12
但有没有办法告诉客户端请求已成功处理但服务器端没有任何变化?
是的,但这不是状态代码的用途.
返回200 OK和实体的表示,或204 No Content并且不返回任何内容.
如果没有应用任何更改,请使用类似ETag的标题.客户端可以将ETag与其先前的值进行比较,并确定没有任何更改.
| 归档时间: |
|
| 查看次数: |
13472 次 |
| 最近记录: |