Session、Cookie、Token的区别

请简述一下cookie、session以及token的区别? 通常包含签名(如 JWT),服务端通过验签确保完整性,但需防范 Token 泄露(如 XSS 攻击)。字段),支持短期 Token(如 Access Token)和长期 Token(如 Refresh Token)。前后端分离项目(如 SPA、移动端 APP)、第三方授权(如微信登录)、API 鉴权(如 JWT)。依赖 Session ID 传递方式(如 Cookie),跨域需额外配置(如 CORS)。(浏览器),以文本形式保存用户信息(如登录状态、偏好设置)。每次请求自动携带,可能增加带宽消耗。 阅读详情

在 Web 开发中,Session、Cookie 和 Token 是三种常见的用户身份认证与状态保持机制,它们各有不同的用途和特性。

1. Session(会话)

✅ 定义

Session 是一种 服务器端 的状态管理机制,用于存储用户的会话信息。

🔹 特点

  • 存储位置:保存在服务器端,通常是内存或数据库。
  • 安全性:比 Cookie 更安全,因为数据不存储在客户端。
  • 生命周期:通常与浏览器会话(session)相关,关闭浏览器可能会丢失,或者由服务器控制失效时间。
  • 依赖 Cookie:默认使用 Cookie 存储 SessionID,通过 SessionID 关联服务器端的数据。

📌 适用场景

适用于 用户登录态管理,如:

  • 传统网站的用户认证
  • Web 后台管理系统
  • 需要服务器记录用户数据的场景

 示例

// Java 中使用 HttpSession
HttpSession session = request.getSession();
session.setAttribute("user", "张三");

// 获取 Session
String user = (String) session.getAttribute("user");

2. Cookie

✅ 定义

Cookie 是一种 客户端 状态管理技术,用于存储小量数据,并随着请求发送给服务器。

🔹 特点

  • 存储位置:存储在客户端(浏览器)。
  • 安全性:容易被篡改、劫持,需要搭配 HttpOnly 和 Secure 提高安全性。
  • 生命周期:
    • 会话 Cookie:不设置 expires 或 max-age,浏览器关闭时自动删除。
    • 持久 Cookie:设置 expires 或 max-age,可以在多次会话间保持。
  • 大小限制:单个 Cookie 最大 4KB,浏览器对总数有限制(一般 20 个)。

📌 适用场景

适用于 轻量级数据存储,如:

  • 记录用户偏好(主题颜色、语言设置等)
  • 记住登录信息(记住密码、自动登录)
  • 追踪用户行为(广告、统计等)

 示例

// 设置 Cookie
document.cookie = "username=zhangsan; path=/; max-age=3600; Secure; HttpOnly";

// 读取 Cookie
console.log(document.cookie);

3. Token(令牌)

✅ 定义

Token 是一种 无状态 认证机制,不依赖服务器存储,而是通过客户端携带 Token 进行身份认证。

🔹 特点

  • 存储位置:通常保存在客户端(localStorage、sessionStorage、Cookie)。
  • 安全性:需要结合 加密、签名(如 JWT),避免篡改。
  • 无状态:服务器不存储 Token,适用于分布式系统。
  • 生命周期:
    • 短期 Token(Access Token):一般几分钟到几小时。
    • 长期 Token(Refresh Token):用于刷新 Access Token,通常有效期较长(如 7 天)。

📌 适用场景

适用于 分布式系统、RESTful API 认证,如:

  • OAuth 2.0 认证
  • JWT(JSON Web Token)认证
  • 微服务架构

示例

生成 JWT
const jwt = require('jsonwebtoken');

// 生成 Token
const token = jwt.sign({ userId: 123 }, 'your_secret_key', { expiresIn: '1h' });

console.log(token);

验证 Token

jwt.verify(token, 'your_secret_key', (err, decoded) => {
    if (err) {
        console.log("Token 无效");
    } else {
        console.log("用户 ID:", decoded.userId);
    }
});

4. 什么时候用?

  • 使用 Session:传统 Web 网站,用户认证(登录后管理 Session)。
  • 使用 Cookie:存储用户偏好、小型数据、自动登录信息。
  • 使用 Token:RESTful API 认证、微服务架构、移动端应用。

如果是 前后端分离 项目,一般采用 Token + JWT 方式认证,而不是使用 Session + Cookie。

📌 结论:

  • Session 适用于服务器端存储用户会话数据,通常用于传统网站的身份认证。
  • Cookie 适用于存储小型数据,但不安全,不能存储敏感信息。
  • Token 适用于 RESTful API,无状态认证方式更适合分布式系统。

如果你是在做 Vue + SpringBoot 项目,推荐使用 JWT Token 方式 进行身份认证,避免 Session 依赖服务器存储。

Session, Token和Cookie的区别 文章目录1. Session 与 Cookie的区别及关联关系1.1. Cookie原理1.2. Session原理1.3. 总结2. token 1. Session 与 Cookie的区别及关联关系 cookie数据存放在客户的浏览器上,session数据放在服务器上(不同容器, 不同框架存储的位置不同, 可能是内存, 可能是文件, 也可以持久化储存) 1.1. Cookie原理 Cookie... 阅读详情

相关推荐

Android TV开发:RecyclerView焦点控制实践与优化

在Android TV应用开发中,焦点控制是提升用户体验的关键技术。不同于移动端触摸交互,TV端通过遥控器方向键导航,需要精确的焦点管理机制。RecyclerView作为动态列表的核心组件,其焦点控制涉及视图复用、导航逻辑和视觉反馈等核心技术点。通过合理配置focusable属性、自定义焦点查找算法以及优化动画性能,开发者可以解决TV端常见的焦点跳转异常、视觉反馈延迟等问题。特别是在视频点播、智能家居控制等场景中,良好的焦点控制能显著提升操作效率。本文结合网格布局焦点环绕、分页加载焦点保持等实战案例,深入解

weixin_34195142的博客 469

session、cookie和token的区别

下面详细介绍一下session、cookie、token的区别,详细如下: 1.session和cookie区别: ·数据存放位置不同:Session数据是存在服务器中的,cookie数据存放在浏览器当中。 ·安全程度不同:cookie放在服务器中不是很安全,session放在服务器中,相对安全。 ·性能使用程度不同:session放在服务器上,访问增多会占用服务器的性能;考虑到减轻服务器性能方面,应使用cookie。

weixin_42099386的博客 3万+

基于Playwright的雪球网股票情绪数据自动化采集实战

网络爬虫是自动化获取互联网公开数据的关键技术,其核心原理在于模拟浏览器行为或直接发送HTTP请求以解析网页内容。在金融科技与量化分析领域,实时、稳定的数据源具有极高的技术价值,能够为市场情绪分析、因子挖掘提供基础。面对采用动态加载、复杂反爬机制的现代单页应用,传统的请求库与Selenium方案在稳定性与隐蔽性上面临挑战。本文聚焦于利用Playwright这一现代浏览器自动化工具,通过模拟真实用户交互、监听网络请求,构建一个能够稳定采集雪球社区实时讨论热度的解决方案。该方案不仅解决了动态内容渲染问题,还通过请

weixin_42529328的博客 585

session、cookie、token的区别?

今天就来理一理session、cookie、token这三者之间的关系!cookie 有存储大小限制,4KB 左右。浏览器每次请求会携带 cookie 在请求头中。字符编码为 Unicode,不支持直接存储中文。数据可以被轻易查看。属性名称属性含义namecookie 的名称valuecookie 的值commentcookie 的描述信息domain可以访问该 cookie 的域名expirescookie 的过期时间,具体某一时间maxAge。

W-Mo-Mo的博客 1万+

炼金术士的试炼:2026年企业信用信息公示系统极验五维反爬下的Python数据博弈与破局之道

企业信用信息公示系统(以下简称“公示系统”)作为国家市场监督管理总局权威发布平台,承载着全国亿万市场主体的登记、许可、处罚等核心信用数据。对于金融风控、市场分析、商业尽职调查等领域,这些数据具有不可替代的黄金价值。然而,公示系统在2025年至2026年间进行了数次史诗级的安全加固,构建了包含动态令牌、极致混淆的JavaScript混淆、无感行为指纹、智能语义验证码以及WebAssembly防护在内的“五维反爬长城”。

2201_76125261的博客 351

2026年运维工程师常见面试选择题

这篇文章总结了30道Linux运维面试常见问题及解析,涵盖基础命令、系统监控、故障排查、数据库、缓存、容器编排等多个方面。主要内容包括: 基础命令使用:如df查看磁盘、free查看内存、top监控进程等 系统监控与故障排查:负载判断、端口检查、进程管理等 中间件相关:Nginx状态码、MySQL主从复制、Redis缓存问题 容器技术:Docker优势、Kubernetes作用 运维理念:高可用、监控告警、发布策略、备份容灾 工作原则:故障处理优先级、运维工程师核心能力 文章不仅提供标准答案,还解析了各命令的

不务正业的猿 193

Session和Cookie

转载自: https://blog.youkuaiyun.com/IT_zhang81/article/details/81776956 1.为什么要有cookie/session? 在客户端浏览器向服务器发送请求,服务器做出响应之后,二者便会断开连接(一次会话结束)。那么下次用户再来请求服务器,服务器没有任何办法去识别此用户是谁。比如web系统常用的用户登录功能,如果没有cookie机制支持,那么只能通过查...

一点思考 562

Android AVB 分析(十三)dm-verity 设备是如何映射的?

在上一篇《Android AVB 分析(十二)嵌入式设备安全中的 dm-verity 简介》介绍 dm-verity 原理的时候,作者提供了一个 dm-verity 演示的例子。本篇我们基于 AOSP 源码 `android-13.0.0_r41` 实际编译生成的 Google Pixel 7 (“panther”) 设备的 system 分区镜像进行 dm-verity 设备验证实战。

洛奇看世界 2438

Token,Cookie和Session三者的区别

在做各种接口测试时,经常会碰到请求参数为token的类型,但是可能大部分测试人员对token,cookie,session的区别还是一知半解。

winkexin的博客 6588

华为Ascend_toolkit在x86ubuntu安装失败报错。[WARNING] driver package is not installed. If you install in docker

这个报错发生在交叉编译配置Ascend_toolkit环境时,安装Ascend_toolkit安装包的时候发生。[Y/N]Y。

anananajiushiwo的博客 1019

近五年体内微/纳米机器人赋能肿瘤精准治疗综述:以 GBM 为重点

摘要 微/纳米机器人在实体瘤治疗领域展现出突破性潜力,通过主动运动能力解决传统纳米药物递送效率低、渗透不足等核心问题。2021-2025年间形成三条技术路线:1) 磁驱、声驱等运动增强递送实现深层渗透;2) 与免疫治疗融合实现原位免疫唤醒;3) 针对胶质母细胞瘤开发跨屏障递送系统。研究重点从单一运动性能转向"运动-分布-疗效"的系统评价,需建立标准化指标评估运动学参数、肿瘤分布均匀性和安全性。未来挑战在于临床转化的可制造性、闭环操控及生物相容性优化,特别是对血脑屏障穿透等复杂场景的系统集

AllenLV的博客 5151

清晰讲解Cookie、Session、Token、JWT之间的区别

详细介绍Cookie, Session, Token, JWT的知识和应用

记录分享编程与冲浪知识 1605

⚡【C++要笑着学】(13) STL介绍:什么是STL标准模板库 | STL的版本 | 浅谈STL的缺陷

再讲解函数模板之前先对STL做一个小铺垫,本篇将对STL做一个简单的介绍。

有道无术, 术尚可求。有术无道, 止于术。 3035

Cookie,Session,Token区别

Cookie 最开始被设计出来是为了弥补HTTP在状态管理上的不足。HTTP 协议是一个无状态协议,客户端向服务器发请求,服务器返回响应,故事就这样结束了,但是下次发请求如何让服务端知道客户端是谁呢?这种背景下,就产生了 Cookie。Cookie 存储在客户端: cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。因此,服务端脚本就可以读、写存储在客户端的cookie的值。

2301_80092713的博客 2046

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Jwt,Token,Cookie,Session之间的区别

认证是关于验证你的凭据,如用户名/邮箱和密码,以验证访问者的身份。系统确定你是否就是你所说的使用凭据。在公共和专用网络中,系统通过登录密码验证用户身份。身份认证通常通过用户名和密码完成,有时与认证可以不仅仅通过密码的形式,也可以通过手机验证码或者生物特征等其他因素。在某些应用系统中,为了追求更高的安全性,往往会要求多种认证因素叠加使用,这就是我们经常说的多因素认证。通俗地讲就是验证当前用户的身份,证明你是你自己。

分享思想,留下痕迹。 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

cookie,session与token的真正区别

稳了!这才是cookie,session与token的真正区别 https://zhuanlan.zhihu.com/p/63862274?utm_source=ZHShareTargetIDMore&utm_medium=social&utm_oi=57846897049600 Java小仙 发展史 1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, ...

代码过客 5591

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Cookie、Session与Token的区别理解

Cookie、Session与Token的区别理解

热爱生活の李 5070

Cookie、Session、Token 的区别与用途

Cookie、Session、Token 的区别与用途

ProgramNovice的博客 2787

token,cookie,session的区别

Token :身份验证的凭证(如 JWT、OAuth Token),由服务端生成,客户端存储并随请求发送。Cookie : HTTP 协议的一部分,由服务端设置,随请求自动发送到服务端,用于维护客户端与服务端的状态。通过 HTTP 请求头。

m0_51429350的博客 1091

Cookie、Session、Token概念、区别、如何实现

Cookie 是在客户端存储数据的机制,由服务器通过 Set-Cookie 响应头发送给客户端浏览器,并存储在客户端上。主要用于在客户端保持用户状态和存储少量数据。存储在客户端,可能存在安全风险和受限制的存储容量。SessionSession 是在服务器端存储用户状态和数据的机制,通过为每个客户端创建唯一的会话标识来进行管理。主要用于在服务器上跟踪用户、存储大量数据和实现身份认证。存储在服务器端,安全性较高,但会增加服务器的负担和存储需求。Token。

diaobusi的博客 2918

cookie session token 的区别

什么是 Cookie HTTP Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。 Cookie 主要用于以下三个方面: ...

WangYouJin321的博客 715

cookie,session和token详解和区别

帮你存储一些在交互过程临时产生的数据当你打开浏览器,访问一个网站,认为会话开始了,当你关闭浏览器的时候,会话结束了接下来先详细介绍cookie,session和token,当你充分了解他们之后,就会发现他们的区别。

Hiro18的博客 6759

Cookie,Session ,token , JWT的区别

HTTP(超文本传输协议)是一种无状态的协议,这意味着服务器不会保留任何两个请求之间的状态信息。每个HTTP请求都是独立的,服务器处理请求后不会记住任何状态信息。这种设计使得HTTP协议简单且适用于大规模分布式系统,但同时也带来了一些挑战,特别是在需要保持用户状态的Web应用程序中。无状态的含义及其影响无状态协议的含义是,服务器不会记住客户端的任何信息。客户端每次请求都必须提供完整的信息,服务器处理完请求后不会保留任何会话信息。这种方式减轻了服务器的存储负担,提高了处理请求的效率。

2301_78506180的博客 1557

Cookie、Session和Token之间的区别是什么?

概念Cookie是由服务器生成并存储在客户端(通常是浏览器)的一小段数据,以键值对的形式进行存储,它是无状态协议(HTTP)的补充机制,用来在客户端和服务器之间维持状态。每次发送的HTTP请求都会自动携带该域名下存储的Cookie到服务器,以便让服务器能够识别客户端的状态。注意并非所有的请求都会携带相同的Cookie,而是每个域名会存储对应的Cookie,因此Cookie符合同源策略,不允许跨域请求。同源策略。

weixin_43287459的博客 1349
上一篇: 策略模式实践
下一篇: 在 JDK 1.8 的 ConcurrentHashMap 中,为什么存在两种插入方式?
format_push
博客等级 码龄4年 104粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值