在“RESTful”设置中,登录和注销操作应使用哪种HTTP方法? 答案:登录应该使用HTTP POST方法,注销应该使用HTTP DELETE方法。

41

好奇其他人如何在REST架构中表示这些内容。

/users/login/
/users/logout/

这些端点分别设置会话以登录用户或清除会话。我的直觉是POST,但实际上我并没有创建对象。

2
参见:https://dev59.com/QnI-5IYBdhLWcg3wI0t9 - Dheeraj Vepakomma
注销方面的讨论可以在 https://dev59.com/UnA75IYBdhLWcg3wAUF9 找到(结果相同)。 - koppor
1
可能是注销:GET还是POST?的重复问题。 - Elias Zamaria
POST请求不一定创建新的资源,它只是将数据发送到服务器。服务器对这些数据的处理取决于服务器本身。 - Ron Inbar
2个回答

61
你应该使用 POST - 使用 GET 可能会导致浏览器预取和搜索引擎爬行出现问题。参见 (1, 2)

简洁明了,不需要进行研究。谢谢。 - technology_dreamer
是的,POST听起来像是注销请求最合理的选择,并且这也是我默认考虑的选项,但是,POST不是意味着“创建”吗?如果使用POST进行注销请求,您将发送什么表单数据?DELETE请求也几乎不适用,除非您有类似于DELETE /session/{id}的东西。PUT意味着我们正在替换某些内容,因此这是不可行的。您对PATCH有什么想法? - undefined

-5

也许是CONNECT方法?MDN说:

HTTP CONNECT方法启动与请求资源的双向通信。它可用于打开隧道。

由于登录意味着在浏览器和服务器之间维护会话,因此CONNECT方法最有意义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接