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

标签 rest post put

我正在尝试决定应该使用 PUT 还是 POST 的 Http 方法。

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

帖子中的答案之一说

PUT is idempotent, so if you PUT an object twice, it has no effect. This is a nice property, so I would use PUT when possible.



有人可以帮我举个例子吗?假设我有一个场景,我试图创建一个学生,其条目将在 RDBMS 的 Student 表中传递。

所以在这里,如果我一次又一次地尝试放置该条目,会不会有任何效果?

最佳答案

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

相比之下,POST 不是幂等的——您只能 POST 值的一个子集。因此,如果您今天调用 POST,等待一周,然后再次进行相同的 POST 调用,您将不知道资源的状态 - 有人可能更改了您未在 POST 中设置的值。

幂等意味着无论何时或以何种频率进行调用,资源的最终状态都完全相同。

DELETE 和 GET 也是幂等的。

关于rest - RESTful Web 服务中的 PUT 方法幂等是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18485621/

相关文章:

http - Ionic 3 文件传输多部分/表单数据

rest - 在 REST 中,POST 或 PUT 最适合更新插入操作吗?

javascript - 用于回显相同 JSON 数据以进行测试的 REST API

javascript - 如何部分更新 DynamoDB 表?

rest - Azure REST WebClient PUT Blob

java - 在放置、发布和删除之前进行 Spring Boot 验证

java - CORS thetransactioncompany 不适用于某一特定路径

api - Flowdock REST API - 简单集成

jquery - 使用 jQuery 在发布之前修改 POST 变量

Angular2 http.post 执行了两次