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,每个请求发送出去

相关推荐
Evand J5 分钟前
【定位代码】复杂地磁环境下无人机自主导航增强技术研究——地磁匹配与多源数据融合方法,附matlab代码
开发语言·matlab·无人机
沛沛老爹5 分钟前
2025年java总结:缝缝补补又一年?
java·开发语言·人工智能·python·guava·总结·web转型ai
wadesir7 分钟前
高效计算欧拉函数(Rust语言实现详解)
开发语言·算法·rust
superman超哥8 分钟前
Rust 零拷贝技术应用:极致性能的内存操作艺术
开发语言·后端·rust·rust零拷贝技术·内存操作
一只大侠的侠8 分钟前
Linux实战:动态进度条从零实现,多版本优化与缓冲区原理全解析
linux·运维·服务器
superman超哥10 分钟前
Rust SIMD 指令优化:数据并行的极致性能
开发语言·后端·rust·数据并行·指令优化
不染尘.10 分钟前
DHCP和HTTP2_3
服务器·网络·网络协议·计算机网络·http·udp·tcp
奔跑吧 android11 分钟前
【ubuntu】【unattended-upgrades 介绍】
服务器·数据库·ubuntu
gaize121311 分钟前
什么是服务器数据?为什么那么重要?
运维·服务器
锐湃16 分钟前
手写agp8自定义插件,用ASM实现路由跳转
java·服务器·前端