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了。

相关推荐
帅次28 分钟前
Android 高级工程师面试:网络与数据层 近1年高频追问 18 题
android·网络·okhttp·面试·retrofit·gilde
奔跑的蜗牛ing15 小时前
CentOS Nginx 安装与静态文件服务器配置指南
前端·面试·架构
KaifuZeng18 小时前
通信与接口协议面试五、RS422
嵌入式硬件·面试·通信与接口
SamDeepThinking19 小时前
组合还是继承?我在项目里主要看这两个判断
java·后端·面试
wear工程师19 小时前
setState 到底是不是异步的?这题从 React 16 问到 18,标准答案早就变了
react.js·面试
SamDeepThinking1 天前
为什么很多人学了Java,还是没真正理解类和对象?
java·后端·面试
阿新聊ai1 天前
Claude Code 为什么总不懂你的项目?缺一张「项目地图」
前端·后端·面试
用户852495071841 天前
Promise 全解析:从三状态到 Promise.all
面试
2401_868534781 天前
案例介绍-小型网络规划及搭
python·计算机网络
嘟嘟07171 天前
Node.js spawn 实现迷你 Cursor 自动化终端|子进程完整解析
前端·后端·面试