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

Sam*_*Sam 7 rest post put

我试图决定应该使用哪种Http方法PUT或POST.

在查看StackOverlflow上的一些帖子时,我可以看到这篇文章.

帖子中的答案之一说

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

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

所以,如果我尝试一次又一次地输入那个条目会不会有效果?

Eri*_*ein 8

在PUT中,您要设置资源的所有值,因此在完成PUT时,您确切知道资源的状态.如果您等待一周并再次调用PUT,您仍然可以确切知道资源的状态.

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

幂等意味着无论何时或多久进行一次调用,资源的最终状态都是完全相同的.

DELETE和GET也是幂等的.