HTTP方法:DELETE与POST

Nat*_*ley 8 http

假设我有一个名为"Session"的资源.客户端将调用PUT来创建并开始新会话.当客户端完成会话后,它将不再可访问,但应该由于历史/问责原因而持续存在.

要结束会话,是否更合适的是发出DELETE请求,这似乎在语义上更接近于所需的效果,或POST,因为资源实际上并未永久删除?

Ikk*_*kke 13

这里的问题是:请求是幂等的吗?如果您执行两次相同的请求,它是否有副作用?就像你订购一篇文章一样,两次执行订单请求会得到你的文章两次.

在这种情况下,POST是你想要的方法.如果没有,那么你想要PUT或者DELETE.

因为你似乎没有删除会话,只改变它的状态,PUT这将是一个更好的方法,因为它意味着资源被更改,而不是删除,在你的情况下就是这种情况.

编辑:

如果资源似乎从客户端删除,DELETE似乎更合适.如何在后面实现事情对客户来说无关紧要.