大家好,我最近试着把之前写的特别随便的网络请求写法(自己根据操作的要求针对每个服务写个响应的做法,自己瞎折腾的,有一点像soap但是肯定没遵守那么多的规范)调整一下,因为看REST风格针对资源而不是服务的做法比较有意思,所以试着做一下。但是很遗憾的是我看了一段时间,对REST风格下大家对身份验证的设计有点理解不能,所以斗胆请大家帮解决一下疑惑。
网上写REST的文章真是不少,一个个都说大家都乱用REST,只有像“我”这样那样地做才是真REST。
http://blog.csdn.net/ugg/article/details/9026649 这个文章说得就比较斩钉截铁,用session一定不是REST。
https://cnodejs.org/topic/527c7ab2d2b3893f2aeca794 这个回答就是最近查看文章里面用token做验证的一种常见做法
还有的就说session token爱叫什么叫什么,都是换汤不换药。
看斗嘴归看,活儿还是得干,我的疑惑就在于如果说服务器保存了session就不能称之为“无状态”的话,那保存token的做法,在本质上到底跟session差了什么就可以称之为“无状态”?个人瞎猜测一下,是因为session这个设计中数据结构里面存储了一些相对token来说“更不能称之为无状态”的数据?
另外还见到一种常见的是服务器不存token,每次发过来以后按照既定的算法在服务器算出一个token,看看两个能否匹配上。这个看起来就真的是啥都没存了,但是每次请求都读盘计算,似乎听着有点浪费。
所以如果大家在身份验证中采取了其他的特别高效又低资源消耗的做法,恳请赐教,因为我没想出什么特别好的做法,也没查到什么特别好的资料。。。。。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.