HTTP DELETE方法幂等性

时间:2015-10-10 17:49:15

标签: rest http web service http-delete

关于REST Web服务HTTP DELETE方法的基本问题。根据HTTP协议文档,DELETE是幂等的。但是,我们第一次发送时,您会得到200个响应代码,随后的请求会因为该资源不存在而导致404错误。那么,如果反应不同,为什么它会被称为幂等?

2 个答案:

答案 0 :(得分:4)

弃用的HTTP规范(RFC2616)在幂等性的描述中使用了一些松散的语言,导致了这种混淆。 较新的RFC 7231表示更好:

  

4.2.2。幂等方法

     

如果预期效果,请求方法被视为“幂等”   使用该方法的多个相同请求的在服务器上是   与单个此类请求的效果相同。请求   本规范定义的方法,PUT,DELETE和safe   请求方法是幂等的。

请注意“在服务器上”的粗体文字。幂等性并不决定返回的内容,它关心请求对系统的影响。

答案 1 :(得分:1)

an answer on REST API Tutorial

  

然而,有一个关于DELETE idempotence的警告。第二次在资源上调用DELETE通常会返回404(NOT FOUND),因为它已被删除,因此不再可查找。根据一些观点,这使得DELETE操作不再是幂等的,但是,资源的最终状态是相同的。 可以接受404并准确传达通话状态。