面试封神题Cookie、Session、Token 到底有什么区别全网最透彻图解一、前言二、前置知识HTTP 是无状态的三、逐个拆解Cookie、Session、Token 是什么3.1 Cookie客户端小纸条定义工作流程特点3.2 Session服务器档案定义工作流程特点3.3 Token加密身份令牌定义工作流程特点四、Cookie、Session、Token 核心区别面试背这张表五、最通俗的比喻10 秒理解 Cookie 门禁卡 Session 前台登记 Token 加密门票六、经典面试题满分答案6.1 Cookie 和 Session 区别6.2 Session 和 Token 区别6.3 为什么现在都用 Token6.4 Token 一定比 Session 好吗七、总结最强记忆版The Begin点点关注收藏不迷路一、前言在 Web 开发、前后端分离、微服务架构中Cookie、Session、Token是实现登录认证、状态保持的三大核心技术。几乎所有后端、前端、测试面试都会问Cookie 是什么Session 解决了什么问题Token 为什么越来越流行三者到底怎么选本文用流程图结构对比通俗讲解场景选择一次性让你彻底吃透面试直接满分。二、前置知识HTTP 是无状态的HTTP 协议不记住用户每次请求都是独立的。为了让服务器认识你必须有一种身份标识。Cookie、Session、Token 都是为了解决 HTTP 无状态问题。三、逐个拆解Cookie、Session、Token 是什么3.1 Cookie客户端小纸条定义Cookie 是服务器种植在浏览器的小型文本数据由浏览器自动保存、自动携带。工作流程用户请求服务器生成Cookie返回给浏览器浏览器自动保存下次请求自动带上Cookie服务器识别身份特点存储位置浏览器客户端大小限制4KB自动携带是安全性低可查看、篡改用途记住我、会话标识、个性化设置3.2 Session服务器档案定义Session 是服务器端存储的用户会话信息通过 Cookie 传递一个SessionID。工作流程登录服务器创建Session生成唯一SessionID通过Cookie返回SessionID浏览器保存SessionID请求自动带SessionID服务器查Session识别用户特点存储位置服务器内存/Redis大小无限制安全性高缺点分布式环境需要 Session 共享依赖必须依靠 Cookie3.3 Token加密身份令牌定义Token 是服务器签发的加密字符串自带用户信息服务端不存储无状态。最常见JWT Token工作流程登录服务器生成Token返回给前端前端存在localStorage/Cookie请求时放在请求头服务器验签→认证成功特点存储位置前端客户端无状态服务端不存储跨域极强支持 APP、小程序、微服务安全性高签名防篡改不依赖 Cookie四、Cookie、Session、Token 核心区别面试背这张表维度CookieSessionToken存储位置客户端服务器客户端数据类型文本键值对对象/结构体加密字符串JWT是否需要服务器存储否是否无状态传输方式自动携带自动带SessionID手动放请求头跨域/分布式差差需共享极好安全性低中高依赖无依赖 Cookie不依赖任何适用场景记住我、小数据传统项目、后台管理前后端分离、微服务、APP五、最通俗的比喻10 秒理解 Cookie 门禁卡你拿着每次进门刷卡。 Session 前台登记你去前台前台查你的档案。 Token 加密门票自带信息验票通过就能进不用登记。六、经典面试题满分答案6.1 Cookie 和 Session 区别Cookie 存在客户端Session 存在服务端Session 基于 Cookie 实现Cookie 不安全Session 安全Cookie 4KBSession 无大小限制6.2 Session 和 Token 区别Session 有状态Token 无状态Session 分布式麻烦Token 天然支持Session 依赖 CookieToken 不依赖Token 更适合微服务、APP6.3 为什么现在都用 Token无状态、跨域强、不依赖Cookie、适合分布式架构。6.4 Token 一定比 Session 好吗不是。后台管理系统 → Session 更简单APP/微服务/前后端分离 → Token 更好七、总结最强记忆版Cookie客户端小纸条自动携带不安全Session服务器档案依赖 Cookie分布式麻烦Token无状态加密令牌自包含、高安全、跨域强一句话区分Cookie 存身份Session 存信息Token 自包含。The End点点关注收藏不迷路