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

相关推荐
专注VB编程开发20年1 小时前
javascript的类,ES6模块写法在VSCODE中智能提示
开发语言·javascript·vscode
云资源服务商3 小时前
解锁阿里云日志服务SLS:云时代的日志管理利器
服务器·阿里云·云计算
朱包林4 小时前
day45-nginx复杂跳转与https
linux·运维·服务器·网络·云计算
孞㐑¥5 小时前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
柳鲲鹏6 小时前
WINDOWS最快布署WEB服务器:apache2
服务器·前端·windows
还鮟8 小时前
CTF Web PHP弱类型与进制绕过(过滤)
php·ctf
zorro_z8 小时前
PHP语法基础篇(八):超全局变量
php
黄雪超8 小时前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice8 小时前
对象的finalization机制Test
java·开发语言·jvm
思则变8 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest