Cookie、Session、Token的区别与联系

Cookie:

存储在浏览器端的文本数据,内存大小不超过4kb里面存储了用户信息和浏览的记录等敏感信息 用途:登录一个网站后下次在浏览该网站时可以直接登录不需要再次输入了 缺点:安全性不好,如果电脑别黑,在浏览器记录里就会cookie中就会暴露你的用户信息 cookie是浏览器端发送请求后服务器端生成保存在浏览器端的文本,下次登录的时候直接把cookie中的用户信息发送给服务器端,完成自动登录,但是为了安全性,诞生了新的存储机制:Session(会话)

session开始:浏览器访问服务器

cookie和seeion的关系:

seeion是服务器向浏览器发送数据时,包含在cookie中的

Session:

sessionID(没有规律的字符串,即使被黑了也很难通过sessionID获取用户名、密码)和回话结束时间(一般设置成cookie的有效期)

每次浏览器访问服务器端是都会把sessionID发送给服务器端,知道回话结束后才会丢弃SessionID想服务器端获取新的SessionID这需要重新登录了。 当浏览器端请求成功后,浏览器端就会生成cookie:

token的引出:

由于网络的高速发展,网络用户增加,如果服务器依旧使用基于Cookie的Session的话,假如大量时间有大量用户访问服务器的时候,服务器就会生成存储大量的SessionID在服务器里面,可能导致服务器的超载如果让数据库保存的话,假如数据库也崩溃了那就会影响用户获取sessionID,这时候JWT就出现了Json Web Token

什么是token:

存储在浏览器中的一段字符串:用户名+密码+密钥组成的字符串 header.payload.signature

header:声明需要什么算法生成签名会经过Base64编码

payload:一些特定的数据,有效期之类的经过Base64编码

signature:签名的信息,就是结合上面两段编码进行算法运算生成签名信息算法就是header声明的算法 过程:浏览器向服务器发送请求时,服务器就会生成JWT让浏览器保存,而不是服务器保存保存jwt签名的密文,让浏览器以Cookie或者Storage的形式进行存储,

token与session的区别:

session存储在服务器,而token存储来浏览器

总结:

session诞生存储与服务器那边有服务器主导,token诞生于服务器但是存储在浏览器由客户端主导,而cookie就是他们的载体起到运输作用,比如把sessionID通过cookie传输到浏览器这边,Cookie跟随HTTP,每个请求发送出去

相关推荐
guodingdingh15 分钟前
软件开发工作问题总结0718
java·开发语言·数据库
优橙教育2 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
SeaTunnel4 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
碎光拾影4 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
一叶龙洲4 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
Marst Code5 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
Miao121315 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
CRMEB系统商城6 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
keyipatience7 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
我的xiaodoujiao7 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具