Cookie 与 Session 入门:登录态到底存在哪

举报
yd_266952352 发表于 2026/11/11 00:13:51 2026/11/11
【摘要】 为什么登录一次,接下来所有请求都带着身份?答案藏在 Cookie 和 Session 的配合里。本文讲清这对老搭档的分工。

为什么登录一次,接下来所有请求都自动带着身份?答案藏在 Cookie 与 Session 的配合里。理解这对搭档,登录态、记住我、单点登录的原理就都通了。

一、Cookie:浏览器侧的身份牌

服务端通过 Set-Cookie 响应头下发,浏览器保存后每次请求自动带上。关键属性:HttpOnly 禁止 JS 读取(防 XSS 偷 cookie);Secure 只走 HTTPS;Max-Age/Expires 控制有效期;Domain/Path 控制携带范围。注意 Cookie 有大小限制(约 4KB),只适合放小令牌不适合放数据。

二、Session:服务侧的档案柜

用户数据(用户名、权限、购物车)存在服务端的 Session 里,浏览器只拿到一个不透明凭据 SessionID。传统实现把 SessionID 放 Cookie 里,服务端按 ID 查档案。分布式部署时 Session 共享有两种思路:集中存储(Redis)或干脆无状态化。

三、现代变体:Token 与 JWT

JWT 把「档案」直接签名后发给浏览器:payload 里带用户信息+过期时间,服务端只验签名不查库,天然适配多实例。代价是签发后难以主动作废(要配合黑名单或短过期+刷新令牌)。选型口诀:单体或集中式部署用 Session+Redis 简单可靠;前后端分离、多端、水平扩容场景用 JWT 更顺。

安全底线三件套:登录态 Cookie 必须 HttpOnly+Secure;SessionID 每次登录后重新生成(防会话固定);过期时间别设永久。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。