这个问题与一般何时使用 GET 或 POST 无关; 它是关于处理退出 Web 应用程序的推荐方法。我已经找到了大量关于一般意义上的 GET 和 POST 之间差异的信息,但我没有找到这个特定场景的明确答案。
作为一个实用主义者,我倾向于使用 GET,因为实现它比 POST 简单得多;只需删除一个简单的链接,您就完成了。我能想到的绝大多数网站似乎都是这种情况,至少在我的脑海中是这样。甚至 Stack Overflow 也使用 GET 处理注销。
让我犹豫的是(尽管很老)的论点,即一些网络加速器/代理通过访问和检索他们在页面中找到的每个链接来预缓存页面,因此用户在点击它们时会得到更快的响应。我不确定这是否仍然适用,但如果是这种情况,那么理论上具有这些加速器之一的用户一旦登录就会被踢出应用程序,因为她的加速器会找到并检索注销链接,即使她从未点击过。
到目前为止,我所阅读的所有内容都表明 POST 应该用于“破坏性操作”,而不会改变应用程序内部状态的操作(如查询等)应该使用 GET 处理 。基于此,这里真正的问题是:
注销应用程序是否被视为破坏性操作/是否会改变应用程序的内部状态?
使用POST.
POST
在 2010 年,使用GET可能是一个可以接受的答案。但是今天(2013 年),浏览器会预取他们“认为”你接下来会访问的页面。
GET
这是 StackOverflow 开发人员之一在 twitter 上谈论这个问题:
我要感谢我的银行注销 GET 请求,感谢 Chrome 团队提供方便的 URL 预取。- Nick Craver ( @Nick_Craver ) 2013 年 1 月 29 日
有趣的事实:StackOverflow 曾经通过 GET 处理注销,但现在不再这样了。