news 2026/4/18 2:45:29

什么是Token,Token和Session以及Cookie的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
什么是Token,Token和Session以及Cookie的区别

Token、Session 和 Cookie 的基本概念

Token
Token 是一种无状态的认证机制,通常由服务器生成并返回给客户端。客户端在后续请求中携带 Token(如放在 HTTP 头部),服务器通过验证 Token 的合法性来判断用户身份。常见的 Token 类型包括 JWT(JSON Web Token)。

Session
Session 是一种有状态的服务器端存储机制。服务器为每个用户创建一个唯一的 Session ID,存储在服务器内存或数据库中,并将 Session ID 通过 Cookie 或 URL 传递给客户端。客户端在后续请求中携带 Session ID,服务器通过 ID 查找对应的用户数据。

Cookie
Cookie 是存储在客户端(浏览器)的小型文本数据,由服务器通过 HTTP 响应头(Set-Cookie)设置。客户端在后续请求中自动携带 Cookie,用于维持用户状态或存储偏好设置。


三者的主要区别

存储位置

  • Token:通常存储在客户端(如 localStorage 或 HTTP 头部)。
  • Session:Session 数据存储在服务器端,仅 Session ID 通过 Cookie 或 URL 传递。
  • Cookie:数据完全存储在客户端。

状态管理

  • Token:无状态,服务器无需存储 Token,仅需验证其有效性。
  • Session:有状态,服务器需维护 Session 存储。
  • Cookie:无状态,但依赖客户端存储。

安全性

  • Token:可通过加密(如 JWT 签名)确保安全性,但需防范 XSS 攻击。
  • Session:Session ID 易受 CSRF 攻击,需配合防护措施。
  • Cookie:需设置HttpOnlySecure属性防范 XSS 和中间人攻击。

扩展性与性能

  • Token:适合分布式系统,无需服务器存储状态。
  • Session:服务器需维护 Session 存储,扩展性较差。
  • Cookie:适合简单状态管理,但数据大小受限(通常 ≤4KB)。

典型应用场景

Token

  • RESTful API 认证(如 JWT)。
  • 移动端或无 Cookie 环境(如跨域请求)。

Session

  • 传统 Web 应用(如电商购物车)。
  • 需服务器端控制用户状态的场景。

Cookie

  • 记住登录状态(如remember_me功能)。
  • 存储用户偏好(如语言、主题)。

技术实现示例

Token(JWT)
客户端在登录后获取 Token,后续请求通过Authorization头部携带:

Authorization: Bearer <JWT_TOKEN>

Session
服务器生成 Session ID 并通过 Cookie 返回:

Set-Cookie: sessionid=abc123; Path=/; HttpOnly

Cookie
服务器设置 Cookie:

Set-Cookie: username=john; Expires=Wed, 21 Oct 2025 07:28:00 GMT; Secure
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 15:44:45

在 DataWorks 中一键部署大模型,即刻用于数据集成和数据开发

在 AI 应用快速落地的今天&#xff0c;越来越多企业希望将大模型能力融入数据处理流程——无论是文本分析、智能摘要&#xff0c;还是 RAG 知识库构建。但传统模式下&#xff0c;模型部署依赖专业 MLOps 团队&#xff0c;需自行搭建推理环境、配置 GPU 资源、维护服务稳定性&am…

作者头像 李华
网站建设 2026/4/18 6:33:06

Docker Desktop安装Keyclock详细步骤

1. Docker Desktop 是什么 Docker Desktop 是 Docker 官方提供的桌面客户端工具&#xff0c;适用于 Windows 和 Mac 系统。它的作用包括&#xff1a; 集成 Docker 引擎Docker Desktop 自带 Docker Engine&#xff0c;你不需要单独安装 Docker 服务。可以直接在本地运行容器。图…

作者头像 李华
网站建设 2026/4/16 2:29:49

抖音直播自动录制完整指南:轻松实现24小时无人值守录制

抖音直播自动录制完整指南&#xff1a;轻松实现24小时无人值守录制 【免费下载链接】DouyinLiveRecorder 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveRecorder 还在为错过心爱主播的精彩直播而烦恼吗&#xff1f;DouyinLiveRecorder抖音直播自动录制工具为…

作者头像 李华
网站建设 2026/4/17 6:03:39

39、3D 图形中的数学与软件模式及相关资源

3D 图形中的数学与软件模式及相关资源 在 3D 图形和虚拟现实领域,有多种数学方法和软件设计模式用于处理旋转、坐标系统转换以及场景管理等问题。下面将详细介绍这些内容。 旋转的表示方法 在单位球面上从一点插值到另一点时,可以使用球面线性插值(“slerp”)技术,而无…

作者头像 李华
网站建设 2026/4/16 2:16:21

Mermaid Live Editor 终极指南:从图表小白到专业绘图的完整教程

Mermaid Live Editor 终极指南&#xff1a;从图表小白到专业绘图的完整教程 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-li…

作者头像 李华
网站建设 2026/4/15 6:07:32

TBOX内存管理终极指南:5大高效优化技巧让性能翻倍

TBOX内存管理终极指南&#xff1a;5大高效优化技巧让性能翻倍 【免费下载链接】layui-admin 基于layui和thinkphp6.0的快速后台开发框架。快速构建完善的管理后台&#xff0c;内置表单、表格的php生成&#xff0c;以及完善的RBAC权限管理。 项目地址: https://gitcode.com/gh…

作者头像 李华