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

Session和Cookie有什么区别

SessionCookie是 Web 开发中管理用户状态的核心技术,二者配合实现 “保持用户登录、记录操作信息” 等功能,但本质是两种不同的机制,核心区别可以从「存储位置、安全性、生命周期」等维度拆解:

一、最核心区别:存储位置不同

特性CookieSession
存储位置存放在客户端浏览器(用户本地)存放在服务器端(后端内存 / 数据库 / Redis)
存储形式键值对形式存储的文本文件(大小通常限制在 4KB 内)对象形式存储在服务器(大小通常由服务器内存 / 配置决定)

二、其他关键区别(从开发 / 使用角度)

对比维度CookieSession
安全性弱(存储在客户端,可被用户篡改 / 删除)强(存储在服务器,用户无法直接修改)
数据类型仅支持字符串(需手动序列化复杂数据)支持任意Java对象(直接存储对象)
生命周期可手动设置过期时间(如 7 天),过期前一直保存在客户端默认随浏览器关闭而销毁(或服务器端设置超时时间,如 30 分钟无操作则失效)
传递方式每次请求自动通过HTTP请求头Cookie字段)发送给服务器需通过Cookie(默认用JSESSIONID)或URL重写传递SessionID,服务器通过SessionID找到对应的 Session 对象
资源占用不占用服务器资源(存在客户端)占用服务器资源(高并发场景需用 Redis 等中间件存储,避免内存溢出)
跨域支持默认不支持跨域(可通过 CORS 配置允许,但有安全风险)本身不涉及跨域,但传递SessionID的 Cookie 可能受跨域限制

三、通俗理解(举个登录的例子)

比如你登录电商网站:

  1. 你输入账号密码后,后端验证通过,创建一个 Session 对象(存你在服务器的登录状态、购物车信息),并生成一个唯一的SessionID(如JSESSIONID=abc123);
  2. 后端把SessionIDCookie 的形式发送给浏览器,浏览器将这个 Cookie 存在本地;
  3. 之后你每次访问网站,浏览器都会自动把这个 Cookie(包含SessionID)发给服务器;
  4. 服务器通过SessionID找到对应的 Session 对象,从而知道 “你是已登录的用户”。

四、使用场景选择

  • 用 Cookie 的场景
    • 存储不敏感的信息(如 “记住用户名”“语言偏好”);
    • 实现 “7 天免登录”(设置 Cookie 的过期时间为 7 天)。
  • 用 Session 的场景
    • 存储敏感信息(如用户 ID、登录状态);
    • 记录用户的临时操作(如未提交的表单内容)。

核心总结

Cookie 是 “服务器给客户端的‘身份证’”,Session 是 “服务器端记录用户信息的‘档案’”——Cookie 负责传递 SessionID,Session 负责存储用户的实际状态信息,二者配合实现用户状态的保持。

http://www.jsqmd.com/news/186830/

相关文章:

  • 你还在手动写序列化函数?C++26反射让一切自动化(仅限内部资料)
  • 智能指针与锁的完美搭配,深度解析C++多线程资源安全机制
  • ACPI!ACPIBuildDeviceExtension函数分析之建立了第一个子设备扩展
  • 高性能C++服务背后的秘密(多线程资源调度优化实战案例)
  • C++26任务优先级机制全面曝光(下一代并发编程革命)
  • CircleCI云端构建加速lora-scripts镜像打包发布流程
  • CI/CD流水线中集成lora-scripts自动测试与发布流程
  • 微信公众号推文介绍lora-scripts最新功能更新动态
  • 导师推荐10个AI论文写作软件,专科生轻松搞定毕业论文!
  • Teambition任务分配明确lora-scripts各成员职责分工
  • JLink烧录过程中SWD接口驱动行为解析
  • C++26 prioritized任务调度:3个你必须掌握的实时系统编程技巧
  • 基于lora-scripts的赛博朋克艺术风格生成器部署全过程
  • C++26中std::future异常处理全面升级(专家级避坑指南)
  • RabbitMQ消息队列解耦lora-scripts训练任务提交与执行过程
  • 为什么C++26的prioritized特性将改变嵌入式开发格局(仅限少数人掌握的核心技术)
  • 举办线上Workshop推广lora-scripts使用经验交流活动
  • 【C++26性能飞跃指南】:掌握std::execution on函数的3个关键技巧
  • 【C++26契约编程重大突破】:深度解析post条件如何重塑代码可靠性
  • 关键规则笔记
  • 北京网红集装箱定制,口碑推荐一览,集装箱设计/箱式房/集成房屋设计/活动板房,网红集装箱公司怎么选择 - 品牌推荐师
  • 牛批了,护眼神器
  • 【C++26多核编程终极指南】:掌握CPU核心绑定的5大实战技巧
  • vue+uniapp+ssm微信小程序的农机收割机信息化服务平台
  • C++并发编程资源竞争难题(90%开发者忽略的RAII深度应用)
  • 选股系统适配A股修改点
  • 从 “文献迷宫” 到 “写作加速器”:大学生论文救星竟是它?paperxie 文献综述
  • 在提示词中正确调用LoRA模型并调整强度(0~1)的操作示例
  • 使用国内镜像网站加速huggingface模型下载以配合lora-scripts
  • vue+uniapp+ssm微信闲置二手物品置换系统卖家 多商家 微信小程序