为什么HTTP方法删除并把它视为幂等?

时间:2017-10-19 16:13:02

标签: rest http

我读过的文章说“除了POST方法,所有HTTP方法都是幂等的”。

我无法理解这个解释。

在我看来, “PUT和DELETE都会改变服务器上的内容,因此重复调用它们不会产生同样的效果。”

那么,为什么他们(PUT,DELETE)被认为是幂等的?

2 个答案:

答案 0 :(得分:4)

如果你DELETE连续两次,整体效果就像你只删除一次一样:资源消失了。

如果您使用相同名称上传(PUT)两次相同的数据,则效果与您仅上传一次的效果相同。

答案 1 :(得分:1)

我可以通过扩展主题来回答这个问题吗?

您说PUT被认为是幂等的,但是如果响应中有一个字段,例如时间戳,例如“ LastUpdateTime”,该怎么办?

如果执行了2个完全相同的更新,则响应将不完全相同...第一个将具有比第二个小的“ LastUpdateTime”。

因此,我相信,如果您以某种方式对待实现,则某些动词被认为是等幂的。

简短的答案:“取决于您的实现方式”