8

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

要结束会话,是否更适合发出 DELETE 请求,这在语义上看起来更接近预期效果,或者 POST,因为资源实际上并没有被永久删除?

4

2 回答 2

18

这里的问题是:请求是幂等的吗?如果两次执行相同的请求,是否有副作用?就像您订购文章一样,执行两次订购请求将使您获得两次文章。

在那种情况下,POST是你想要的方法。如果没有,那么您想要PUTor DELETE

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

编辑:

如果资源似乎从客户端删除,DELETE似乎更合适。后面的事情如何实现对客户来说并不重要。

于 2012-11-04T08:27:00.697 回答
0

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

于 2012-11-04T08:21:55.920 回答