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

cookie session和token的区别

1. 核心概念

机制

本质

存储位置

生命周期

Cookie

客户端存储的小型文本数据

浏览器

可设置过期时间(如7天)

Session

服务端存储的用户会话状态

服务器内存/数据库

用户关闭浏览器或超时失效

Token

无状态的加密身份凭证(如JWT)

客户端(LocalStorage等)

取决于过期时间或主动撤销

2. 工作原理对比
(1) Cookie
  • 流程
    1. 服务端通过Set-Cookie响应头下发Cookie →
    2. 浏览器自动在后续请求的Cookie头中携带 →
    3. 服务端验证Cookie内容。
  • 特点
    • 每次请求自动附加,可能引发 CSRF攻击
    • 大小限制(约4KB),不可跨域(受同源策略限制)。
(2) Session
  • 流程
    1. 服务端创建Session ID →
    2. 通过Cookie或URL参数传递给客户端 →
    3. 客户端后续请求携带Session ID →
    4. 服务端查询Session存储(如Redis)验证状态。
  • 特点
    • 服务端存储压力大(高并发时需分布式Session)。
    • 默认依赖Cookie传递Session ID。
(3) Token(如JWT)
  • 流程
    1. 用户登录后服务端生成Token(含用户信息+签名) →
    2. 客户端保存Token(LocalStorage/内存) →
    3. 每次请求在Authorization头中手动添加Token →
    4. 服务端验证签名并解码Token。
  • 特点
    • 无状态:服务端不存储Token,适合分布式系统。
    • 可跨域,但需防 XSS攻击(Token被恶意脚本窃取)。
3. 安全性与适用场景

对比项

Cookie

Session

Token

安全性

低(易CSRF)

中(依赖Session ID安全)

高(需防XSS)

扩展性

差(同源限制)

中(需共享Session存储)

优(天然支持分布式)

适用场景

简单状态保持(如语言偏好)

传统Web应用(如电商购物车)

前后端分离/API认证(如移动端)

4. 通俗比喻
  • Cookie:超市会员卡(自动出示,但可能被伪造)。
  • Session:银行柜台号牌(服务端记录你的业务状态)。
  • Token:加密门票(自带身份信息,无需查后台)。
5. 如何选择?
  • 需要兼容老系统/简单状态Cookie+Session
  • 需要跨域/无状态架构Token(JWT)
  • 敏感操作(如支付)Session + CSRF Token

总结:三者本质是不同维度的身份管理方案,现代系统常组合使用(如JWT+HttpOnly Cookie双重防护)。

相关文章:

  • 一键搭建 WordPress + MySQL + phpMyAdmin 环境(支持 PHP 版本选择 自定义配置)
  • Python Flask文件处理与异常处理实战指南
  • 附加模块--Qt Shader Tools功能及架构解析
  • 技术栈Etcd的介绍和使用
  • Python 包管理器 uv 介绍
  • LeetCode面试经典150题—合并两个有序数组—LeetCode88
  • 实验四:图像灰度处理
  • LLMs之Structured Output:vLLM 结构化输出指南—从约束生成到自动解析与高效实现
  • 信号与传输介质
  • 基于fpga的疲劳驾驶检测
  • 06. C#入门系列【自定义类型】:从青铜到王者的进阶之路
  • 【LeetCode 热题100】字符串 DP 三连:最长回文子串、最长公共子序列 编辑距离(力扣5 / 1143/ )(Go语言版)
  • 【量化】策略交易 - 均线策略(Moving Average Strategy)- 代码增强版本
  • 整数的字典序怎么算
  • AUTOSAR实战教程--DoIP_02_诊断链路建立流程
  • 使用vs2022中自带的sqlserver,并在docker中安装mssql-server 并配置相关信息
  • [特殊字符] Whisper 模型介绍(OpenAI 语音识别系统)
  • 【面试题】如何保证MQ的消息不丢失、不重复
  • HTML前端开发:JavaScript 获取元素方法详解
  • RabbitMQ fanout交换机
  • 烟台城乡建设住建局网站/关键词搜索趋势
  • 湘潭网站制作公司/南宁今日头条最新消息
  • php动态网站开发唐四薪/可以发外链的平台
  • 中山手机网站建设/某网站搜索引擎优化
  • 苗族网站建设/百度助手官网
  • 网站服务器租用哪家好/2023年9月疫情又开始了吗