news 2026/5/4 18:25:54

Session和Cookie有什么区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 负责存储用户的实际状态信息,二者配合实现用户状态的保持。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 12:57:44

揭秘C++26 std::future异常处理:5个你必须掌握的改进特性

第一章:C26 std::future 异常处理的演进背景在并发编程日益普及的背景下,C 标准库中的 std::future 作为异步操作结果的承载机制,其异常处理能力的完善成为社区关注的焦点。C26 对 std::future 的异常传播与捕获机制进行了系统性增强&#xf…

作者头像 李华
网站建设 2026/5/2 5:43:33

C++专家私藏笔记:std::execution on函数在高并发场景下的7种妙用

第一章:std::execution on函数的核心机制解析std::execution::on 是 C 执行策略中的关键组件,用于将执行上下文与特定的执行器(executor)绑定,从而控制并行算法在哪个执行资源上运行。该机制允许开发者显式指定算法的执…

作者头像 李华
网站建设 2026/5/3 6:19:49

C++程序员必读:掌握C++26反射+序列化,性能提升90%的秘密

第一章:C26反射与序列化概述C26 正式引入了语言级反射(Reflection)机制,标志着 C 在元编程领域迈出了革命性一步。这一特性使得开发者能够在编译期获取和操作类型信息,而无需依赖传统的模板元编程或外部代码生成工具。…

作者头像 李华
网站建设 2026/5/2 15:20:53

vue+uniapp微信小程序的基于微信小程序的音乐播放器

文章目录摘要主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 基于微信小程序的音乐播放器采用Vue.js和UniApp框架开发,实现了跨平台兼容性…

作者头像 李华
网站建设 2026/5/1 5:53:12

搭建私有化lora-scripts训练平台的安全性与权限管理方案

搭建私有化lora-scripts训练平台的安全性与权限管理方案 在生成式AI技术迅速渗透企业场景的今天,越来越多组织开始尝试使用LoRA(Low-Rank Adaptation)对Stable Diffusion或大语言模型进行轻量化微调。相比全参数训练,LoRA只需调整…

作者头像 李华
网站建设 2026/5/1 22:29:27

贾子技术颠覆论(KTS)核心逻辑与颠覆机制论述

贾子技术颠覆论(KTS)核心逻辑与颠覆机制论述贾子技术颠覆论(Kucius Technological Subversion Theory, KTS)以 “0→1 系统替换” 为核心内核,结合 “悟空智慧模型” 构建颠覆性创新的完整逻辑,同时明确了技…

作者头像 李华