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

相关推荐
天涯学馆5 小时前
前端开发也能用 WebAssembly?这些场景超实用!
前端·javascript·面试
摘取一颗天上星️5 小时前
后端密码加密:守护用户数据的钢铁长城
计算机网络·哈希算法·加密算法
然我8 小时前
别再只用 base64!HTML5 的 Blob 才是二进制处理的王者,面试常考
前端·面试·html
莫空00008 小时前
深入理解JavaScript的Reflect API:从原理到实践
前端·面试
磊叔的技术博客8 小时前
LLM 系列(六):模型推理篇
人工智能·面试·llm
岁忧9 小时前
(LeetCode 面试经典 150 题 ) 58. 最后一个单词的长度 (字符串)
java·c++·算法·leetcode·面试·go
jingling55512 小时前
面试版-前端开发核心知识
开发语言·前端·javascript·vue.js·面试·前端框架
莫空000012 小时前
深入理解JavaScript属性描述符:从数据属性到存取器属性
前端·面试
wuxinyan12313 小时前
Java面试题033:一文深入了解MySQL(5)
java·数据库·mysql·面试
笑衬人心。13 小时前
HTTPS详解:原理 + 加解密过程 + 面试问答
java·网络协议·http·面试·https