登录和注销操作应在“RESTful”设置中使用哪种 HTTP 方法
Posted
技术标签:
【中文标题】登录和注销操作应在“RESTful”设置中使用哪种 HTTP 方法【英文标题】:Which HTTP method should Login and Logout Actions use in a "RESTful" setup 【发布时间】:2013-02-12 10:50:07 【问题描述】:很好奇这里的其他人如何在 REST 架构中表示这些。
/users/login/
/users/logout/
这些端点分别设置会话以登录用户或清除它。我的直觉是 POST,但实际上我并没有创建对象。
【问题讨论】:
另见:***.com/q/2001773/165674 关于注销,在***.com/q/3521290/873282详细讨论(结果相同) Logout: GET or POST?的可能重复 POST 不必创建新资源。它只是将数据发送到服务器。服务器如何处理这些数据取决于服务器。 【参考方案1】:也许连接? MDN 说:
HTTP CONNECT 方法启动与所请求资源的双向通信。它可以用来打开隧道。
由于登录意味着在浏览器和服务器之间保持会话,因此 CONNECT 方法最有意义。
【讨论】:
【参考方案2】:您应该使用POST
- 使用GET
进行这些操作可能会导致浏览器预取和搜索引擎爬取问题。见(1,2)
【讨论】:
简明扼要,没必要研究。谢谢 是的,POST
听起来是注销请求最合理的选择,也是我默认考虑的选项,但是,POST
不意味着“创建”吗?对于POST
的注销请求,您将发送什么表单数据? DELETE
请求也几乎不适合,除非你有类似 DELETE /session/id
的东西。 PUT
意味着我们正在替换某些东西,所以这是不可能的。你对PATCH
有什么看法?以上是关于登录和注销操作应在“RESTful”设置中使用哪种 HTTP 方法的主要内容,如果未能解决你的问题,请参考以下文章