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

相关推荐
胡志辉24 分钟前
深入浅出理解浏览器事件循环:从一道输出题讲到 Chrome 源码
前端·javascript·面试
嵌入式ZYXC2 小时前
第8篇:《面试题:模拟地和数字地为什么要分开?怎么接?》
stm32·单片机·嵌入式硬件·面试·职场和发展
plainGeekDev2 小时前
算法刷题笔记:一维DP没那么难,状态想清楚就赢了一半
java·算法·面试
Sam_Deep_Thinking3 小时前
java中的class到底是个什么东西?
java·开发语言·面试
mqiqe3 小时前
面试题-MyBatis 面试篇
java·面试·mybatis
古希腊掌管代码的神THU4 小时前
【清华代码熊】Agent Harness 工程实践之(1): Context管理
人工智能·深度学习·自然语言处理·面试
mqiqe5 小时前
面试题-Zookeeper 面试篇
分布式·zookeeper·面试
程序员晨曦5 小时前
深入浅出JVM内存结构
jvm·面试·职场和发展
AC赳赳老秦5 小时前
OpenClaw+AWS 深度应用:自动生成 CloudFormation 模板、批量管理 S3 存储桶
java·python·面试·职场和发展·php·deepseek·openclaw
Zik----5 小时前
保研英语面试
面试·职场和发展