HTTP方法:DELETE与POST

时间:2012-11-04 08:17:21

标签: http

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

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

2 个答案:

答案 0 :(得分:12)

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

在这种情况下,POST是您想要的方法。如果没有,那么您需要PUTDELETE

由于您似乎没有删除会话,只更改其状态,PUT将是更好的方法,因为这意味着资源被更改,而不是删除,这在您的情况下情况下。

编辑:

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

答案 1 :(得分:0)

POST请求在这里会更好,因为您实际上并没有删除session。 POST请求通常用于更改对象的状态。我认为这是你的情况。