http状态,cookie、session、token的对比

http是无状态的,也就是说断开会话了服务器就不记得任何事情了,但这样对于用户会很麻烦,因为要不停输入用户名和密码

cookie是放在浏览器里的数据,第一次访问后服务器会set cookie,然后浏览器保存这个cookie,没发送都带着这个cookie,这样就不用每次我们手动输入账户名和密码,但这并不安全,假设电脑被黑了,浏览器里的个人信息就泄露了。并且一旦我们换个浏览器或者换台电脑,就没有这个cookie了。

所以,当用户第一次登陆后,服务器会创建一个带有签名的无规律字符串session(会话)返回给用户浏览器,这样就算黑客拿到session id也没啥大用,这是带签名的。当session的生命周期结束就会让用户重新输入用户名和密码

但是随着互联网发展,访问量激增,每个用户都存储一个session id在服务器内存里,服务器吃不消。并且session保存在一个服务器节点里,要是访问到别的节点上就识别不出来了。json web token(jwt)应运而生。现在是token(令牌)存在了浏览器客户端,服务器端只是来验证这个token,相当于是cpu换内存用

具体来说就是客户端发送header、payload、signature,然后服务端通过前两模块和加密密钥来计算比对signature,

token的方式,可以看出服务端密钥的重要性就显而易见,一旦泄露整个机制就崩塌了,这个时候就需要考虑HTTPS了。

相关推荐
写bug写bug1 小时前
分布式锁的使用场景和常见实现(上)
分布式·后端·面试
Ali酱1 小时前
2周斩获远程offer!我的高效求职秘诀全公开
前端·后端·面试
Thomas游戏开发1 小时前
Cocos Creator 面试技巧分享
面试·微信小程序·cocos creator
LaiYoung_2 小时前
深入解析 single-spa 微前端框架核心原理
前端·javascript·面试
uhakadotcom3 小时前
将next.js的分享到twitter.com之中时,如何更新分享卡片上的图片?
前端·javascript·面试
掘金安东尼3 小时前
2分钟创建一个“不依赖任何外部库”的粒子动画背景
前端·面试·canvas
计算机毕业设计木哥3 小时前
计算机毕设大数据选题推荐 基于spark+Hadoop+python的贵州茅台股票数据分析系统【源码+文档+调试】
大数据·hadoop·python·计算机网络·spark·课程设计
uhakadotcom3 小时前
Flink有python的SDK入门教程
后端·面试·github
uhakadotcom4 小时前
开源一个AI导航站工具-jobleap4u
前端·面试·github
今禾4 小时前
JavaScript 响应式系统深度解析:从 `Object.defineProperty` 到 `Proxy` 的演进与优化
前端·javascript·面试