当前位置: 首页 > ai >正文

Cookie、Session、Token详解

(一)Cookie:食堂给你的 “消费小纸条”

🌰 比喻:Cookie 就像食堂给你的 “消费小纸条”

  • 每次你买饭菜(访问网站页面),食堂阿姨(服务器)会给你贴一张小纸条(Cookie),上面记着你买过啥菜系、上次消费金额
  • 下次再去(再次访问网站),不用你说,食堂阿姨看小纸条(浏览器自动发 Cookie 给服务器),就知道给你推荐啥新菜,还能认出你是老顾客

💡 关键特点:

  • 存在你手机 / 浏览器里(小纸条揣你兜里),能存简单信息(口味偏好、登录标记 ),但存太多会 “写不下”(容量小,一般 4KB 左右)
  • 每次去食堂自动带(你揣着小纸条进出食堂),但别人能看见纸条内容(易被拦截篡改,得加 “防盗” 设置 )

❓ 但 Cookie 有麻烦:

  • 小纸条能被改:别人抢你小纸条(被黑客拦截),能改成 “你是 VIP” 骗阿姨;纸条也不能写太多字(Cookie 存不了复杂信息,一般就几 KB)
  • 跨地儿不好使:你去食堂的其它分店(跨域访问其他网站服务),这纸条分店阿姨不认,得重新打交道

下面这张图就是实际的Cookie操作

(二)Session:你在食堂的 “专属储物柜”

🌰 比喻:Session 是你在食堂的 “专属储物柜”

  • 第一次去食堂(登录网站),食堂前台(服务器)给你开一个储物柜(创建 Session),钥匙是个编号(Session ID),还把钥匙绑在你手腕带(Cookie 存 Session ID)
  • 你把饭盒、常用餐具(购物车商品、个人信息 )放储物柜(Session 存服务器),之后每次取东西(访问需要登录的页面),刷手腕带(发 Session ID),前台就知道开哪个柜子,拿你存的东西

💡 关键特点:

  • 东西存在食堂(服务器),能存复杂信息(比 Cookie 能存更多、更敏感内容 ),但食堂得管好钥匙(服务器维护 Session 耗资源,连锁食堂 / 分布式系统里 “钥匙同步” 麻烦 )
  • 靠 Cookie 传钥匙(手腕带丢了,别人拿你钥匙就乱套,所以要防 Cookie 被盗 )

为啥需要 Session

  • 藏好重要东西:饭卡、密码(敏感信息)放自己柜子(服务器),比塞纸条(Cookie 存敏感信息)安全多了!
  • 能存更多内容:小柜子能塞下你一周的用餐习惯、收藏菜单(Session 存复杂信息,比 Cookie 能存更多)

但!要是食堂分店多(分布式系统,多个服务器),你在 A 店存的东西,B 店柜子里没有(Session 难跨服务器共享),还得专门搬数据(靠 Redis 等工具同步 Session),麻烦~

(三)Token:食堂给你的 “万能电子饭卡”

🌰 比喻:Token 是 “万能电子饭卡”,像手机里的二维码

  • 第一次用 App 下单(登录系统),食堂发你个二维码(Token),上面加密写着 “你是学生,能打 8 折,能进教师食堂”
  • 之后不管去食堂窗口、小卖部(访问不同服务),扫二维码(请求带 Token),阿姨(服务器)不用查柜子,直接扫二维码看权限(解析 Token 里的加密信息)

💡 为啥需要 Token

  • 跨地儿随便用:你去分校食堂(跨域、跨系统),二维码全国通用(Token 能跨平台、跨服务用),不用重新开柜子
  • 不用共享状态:食堂不用记住你存啥(Token 无状态),扫一次码就知道你是谁、能干嘛,分店多也不怕(适合分布式系统)

举个🌰:你用手机点外卖(App 登录),去线下食堂刷脸(另一个服务),用同个 Token 就能认你身份,不用重新登录~

简单说:

  • Cookie 是 “基础身份贴条”,但存不了太多、不安全;
  • Session 把重要东西藏服务器,解决 Cookie 存敏感信息的问题;
  • Token 让跨系统、跨平台 “认身份” 更方便,适合复杂、分布式的互联网应用~
完美撒花~
http://www.xdnf.cn/news/17787.html

相关文章:

  • 【嵌入式C语言】四
  • vscode使用keil5出现变量跳转不了
  • CTFShow PWN入门---Kernel PWN 356-360 [持续更新]
  • OpenCV图像平滑处理方法详解
  • 什么是主成分分析(PCA)和数据降维
  • Serverless 架构核心解析与应用实践
  • IPTV系统:开启视听与管理的全新篇章
  • redis中分布式锁的应用
  • 玩转Docker | 使用Docker部署JSON格式化工具ZJSON
  • 【论文阅读】基于多变量CNN模型的可穿戴外骨骼机器人人体运动活动识别
  • 计算机视觉--opencv(代码详细教程)(二)
  • Webpack Plugin 深度解析:从原理到实战开发指南
  • 【漏洞复现】WinRAR 目录穿越漏洞(CVE-2025-8088)
  • 服务器的安全检测和防御技术
  • Uniapp 条件编译详解
  • 机器学习--KNN算法
  • MySQL中的DML(二)
  • Python包管理工具uv使用教程
  • 语义 HTML 的核心价值:提升 SEO 与 AI 理解
  • 监控插件SkyWalking(一)原理
  • 【STM32入门教程】stm32简介
  • (第十五期)HTML文本格式化标签详解:让文字更有表现力
  • 《量子雷达》第5章 量子雷达发射机 预习2025.8.14
  • 腾讯混元全新开源Hunyuan-GameCraft:高动态交互式游戏视频生成框架
  • 【入门级-C++程序设计:13、STL 模板:栈(stack)、队 列(queue)、 链 表(list)、 向 量(vector) 等容器】
  • # 2025全球AI游戏市场研究报告:行业洞察与未来趋势
  • Unity人形角色IK优化指南
  • Vue3 vxeTree树形组件完全指南:从入门到精通的完整使用教程
  • 解决Maven编译时JAVA_HOME配置错误问题:从报错到根治的完整方案
  • web网站开发,在线%射击比赛成绩管理%系统开发demo,基于html,css,jquery,python,django,model,orm,mysql数据库