Bla*_*bam 1 rest http http-post http-delete
正如在"RESTful"设置中使用HTTP方法登录和注销操作所接受的答案所述,建议在RESTful Web服务(例如/webservice/login/)中使用HTTP POST(= create)进行登录.POST既不是幂等的也不是安全的(http://restcookbook.com/HTTP%20Methods/idempotency/).
但是如何注销(例如/ webservice/logout /).我应该使用POST还是DELETE?
DELETE是幂等的 - 无论服务器上是否存在会话(或其他),它都会被删除,并且来自网络服务器的答案没有任何进一步的内容.这对我来说有点自然.
POST不是幂等的,类似问题的一些海报建议POST用于REST注销.我可以想到两个可能的原因:
如果会话不存在,服务器可能会返回404 - 否则成功答案(两种答案)
注销可以触发例如包含用户等的注销信息的数据库更新,因此注销操作不是幂等的
那么哪种HTTP方法更适合注销 - POST或DELETE?
通常,您的网络服务器既不应具有会话功能,也不应具有注销功能.REST服务应该是无状态的,并且每个请求都会发送身份验证信息.
但是,如果您使用某个令牌对用户进行身份验证,并且您希望明确告诉服务器使令牌过期,并且您希望以RESTful方式表达它,那么对我来说这是有意义的:
DELETE在该网址上发布了一个我有一个/webservice/logout/你删除的网址是没有意义的.
发出带有一些信息以发出"注销"操作的POST请求是一种明智的HTTP API设计方法,但它不是REST.
| 归档时间: |
|
| 查看次数: |
3309 次 |
| 最近记录: |