跳到主内容
快讯直播
AI智模界
AI 词典

会话与 Cookie:服务器凭什么记得你

一句话定义:会话(Session)是服务器为你这次访问保存的一份状态档案;Cookie 是浏览器替你保管、并在之后每次请求里自动出示的那张取件凭证。

它解决什么问题:HTTP(HyperText Transfer Protocol)本身不保留状态:同一个浏览器连着发两个请求,服务器在协议层面分不清它们是否来自同一个人。于是有了一个约定:第一次访问时,服务器在响应头里用 Set-Cookie 下发一小段文本,通常是一个随机生成的 Session ID,或者叫会话标识;浏览器把它存进对应域名的本地存储。此后每次向这个域名发请求,浏览器都会自动加上 Cookie 请求头,把这段文本原样带回去。服务器拿着这个 ID 去自己的存储里查:「哦,是刚才那位。」

关键就在这里:记住你的其实不是服务器,而是你的浏览器。服务器只认那张凭证,不认人。凭证丢了(清 Cookie、换个浏览器、开无痕窗口),你就变回陌生人,得重新登录。

打个比方:去游泳馆,前台给你一个手环,衣服和手机存在 3 号柜子里。手环本身不装任何东西,它只是一串编号;真正的东西在前台那边。你每次回去取东西,靠的是亮一下手环。手环就是 Cookie,柜子就是服务端会话存储,编号对应 Session ID。

几个容易混的邻居:

名词存在哪特点
Cookie浏览器容量很小,每次同域请求自动携带,是传输凭证的载体
Session服务器状态本体,靠 Session ID 索引,容量随业务需要
AI 词典:Token">Token(如 JWT)浏览器内容自包含、服务端不必查库,靠签名校验,属于无状态方案
LocalStorage浏览器容量大,但不会随请求自动发送,需要前端手动放进请求头

对实际工作的意义:

1. Cookie 里只该放一个没意义的随机 ID。它每次请求都在明文往返,用户自己也能看见、能修改,所以别把聊天记录、身份信息直接写进去。

2. 多台服务器部署时,会话不能只存在某台机器的内存里,否则用户第二次请求被分到别的机器上,就会“失忆”。要么放进共享存储,要么干脆改用无状态 Token。

3. 同一域名下的 Cookie 是所有标签页共享的,所以一个标签页登录,另一个也就登录了。反过来,退出登录时,服务端会话和浏览器 Cookie 最好一起清掉。

4. 做 AI 对话产品时,多轮上下文一般存在服务端的会话或数据库里,Cookie 只负责携带那个 ID。也就是说,浏览器交出去的从来不是对话内容,而是一张写着编号的取件单。

一句话收尾:理解会话与 Cookie,本质上就是理解:一个不保留状态的协议,怎么靠一张反复出示的凭证,假装自己一直记得你。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。