注销请求应该设计为 GET 还是 POST?
Posted
技术标签:
【中文标题】注销请求应该设计为 GET 还是 POST?【英文标题】:Should a logoff request be designed as GET or POST? 【发布时间】:2015-07-01 20:43:08 【问题描述】:我正在实施一些休息服务。根据 SDK,我必须调用的第一个服务是用于登录的 http POST 请求。输入是我的用户凭据,输出是我的会话 ID。
要注销,我还必须发出 http POST 请求,但请求正文中没有任何数据/有效负载。相反,必须在包含会话 ID 的请求中添加标头字段。
我有点伤心,这是注销请求的正确设计,还是应该使用 GET 方法?更一般地说,没有输入(查询参数和请求标头除外)且没有输出的请求应该是 GET、POST 还是其他?为什么会这样或为什么不呢?
【问题讨论】:
我会说 POST。一般原则,任何导致状态变化的东西都应该在 POST 而不是 GET 中。 【参考方案1】:根据RFC2616GET 是一种“安全方法”,
除了检索之外,不应该有采取行动的意义
注销,对我来说似乎不是一个安全的操作,所以 GET 不适合。
因此它应该是一个 POST。没有其他 HTTP 动词在语义上似乎合适。
【讨论】:
以上是关于注销请求应该设计为 GET 还是 POST?的主要内容,如果未能解决你的问题,请参考以下文章