Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 为什么HTTP方法delete和put被认为是幂等的?_Rest_Http - Fatal编程技术网

Rest 为什么HTTP方法delete和put被认为是幂等的?

Rest 为什么HTTP方法delete和put被认为是幂等的?,rest,http,Rest,Http,我读过这样的文章:“除了POST方法之外,所有HTTP方法都是幂等的” 我无法理解这种解释 依我看,, PUT和DELETE都会更改服务器上的某些内容,因此重复调用它们不会产生相同的效果 那么,为什么它们(PUT,DELETE)被认为是幂等的呢?如果你连续两次删除某个东西,那么总体效果就像你只删除了一次一样:资源消失了 如果您以相同的名称上传两次相同的数据(将),效果与您只上传了一次相同。我可以通过稍微扩展主题来回答这个问题吗 你说PUT被认为是幂等的,但是如果在响应中有一个字段,比如时间戳,即

我读过这样的文章:“除了POST方法之外,所有HTTP方法都是幂等的”

我无法理解这种解释

依我看,, PUT和DELETE都会更改服务器上的某些内容,因此重复调用它们不会产生相同的效果


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

如果你连续两次删除某个东西,那么总体效果就像你只删除了一次一样:资源消失了


如果您以相同的名称上传两次相同的数据(
),效果与您只上传了一次相同。

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

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

如果执行两个完全相同的更新,响应将不完全相同。。。第一个将比第二个的“LastUpdateTime”少

所以我相信,如果你以某种方式对待实现,一些动词被认为是幂等的


简短回答:“这取决于您的实施”

感谢您的帮助。我知道。但我能再问一个问题吗?我理解PUT这个词,但不理解DELETE方法。如果我使用POST方法,我会发布2条消息,然后创建两条消息。如果我使用DELETE方法,我会删除2个元素,然后删除两个元素。。区别是什么?当然,我不能删除相同的数据两次吗。。?喜欢POST@jwkoo如果您再次执行
DELETE/foo
,然后执行
DELETE/foo
,那么如何删除两件事?第一个
DELETE
删除
/foo
,然后第二个
DELETE
什么也不做。