这个问题不是关于什么时候使用GET或POST;是关于建议使用哪个来处理web应用程序的注销。我已经找到了大量关于GET和POST之间一般意义上的区别的信息,但是我没有找到针对这个特定场景的明确答案。
作为一个实用主义者,我倾向于使用GET,因为实现它比POST简单得多;只需删除一个简单的链接,就完成了。这似乎是我能想到的绝大多数网站的情况,至少从我的头脑。甚至Stack Overflow也可以使用GET处理注销。
让我犹豫的是(虽然是旧的)一些网页加速器/代理预缓存页面通过检索他们在页面中找到的每个链接,所以当用户点击它们时得到更快的响应。我不确定这是否仍然适用,但如果是这种情况,那么在理论上,使用这些加速器之一的用户一旦登录就会被踢出应用程序,因为她的加速器会找到并检索注销链接,即使她从未点击它。
到目前为止,我所读到的一切都表明POST应该用于“破坏性操作”,而不改变应用程序内部状态的操作(如查询等)应该用GET处理。基于此,真正的问题是:
注销应用程序是否被认为是破坏性操作/是否会改变应用程序的内部状态?