一个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 200
和HTTP 204
都表示成功处理了请求,即使数据没有改变,请求仍然可以(并且应该)被成功处理。但是是否有一种方法可以告诉客户端请求已经成功处理但服务器端没有任何更改?如果有的话,是否应该用于PUT
请求?由于PUT
是幂等的,因此是否应根据服务器端的实际处理返回不同的状态(只要在此处理过程中没有出现错误)?