在RESTful Web服务中PUT方法是幂等的是什么意思?

时间:2013-08-28 10:39:11

标签: rest post put

我正在尝试决定应该使用哪种Http方法PUT或POST。

在查看StackOverlflow上的一些帖子时,我可以看到this帖子。

帖子中的一个答案说

  

PUT是幂等的,所以如果你将对象PUT两次,它就没有效果。这是一个很好的属性,所以我会尽可能使用PUT。

有人可以通过一个例子来帮助我。让我们说我有一个场景,我正在尝试创建一个学生,其条目将在RDBMS中的Student表中传递。

所以在这里,如果我试图一次又一次地输入那个条目会没有效果吗?

1 个答案:

答案 0 :(得分:8)

在PUT中,您正在设置所有资源的值,因此当完成PUT时,您确切知道资源的状态。如果你等了一个星期再次打电话给你的PUT,你仍然可以确切地知道资源的状态。

相比之下,POST 幂等 - 您只发布一部分值。因此,如果您今天致电POST,等待一周,再次进行相同的POST调用,您不知道该资源的状态是什么 - 有人可能更改了您未在POST中设置的值。

幂等意味着无论您何时或多久拨打一次电话,资源的最终状态都是完全相同的。

DELETE和GET也是幂等的。