LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

一文读懂Cookie、Session和Token:原理、区别与应用场景

freeflydom
2025年7月2日 8:16 本文热度 51

咱上网冲浪的时候,天天和各种网站、APP打交道。但HTTP协议有个“毛病”——它记性不好,每次请求都像第一次见面,根本不记得之前和你聊过啥。为了解决这个问题,程序员们整出了CookieSessionToken这三个“神器”,它们就像我们在网络世界的身份证、通行证,帮服务器记住你是谁,都干了啥。今天咱就唠唠这仨到底是干啥的,有啥不一样!

一、Cookie、Session和Token都干啥用?

1.1 Cookie:浏览器帮你记事儿的小本本

Cookie就是服务器给浏览器塞的小纸条,存的都是些用户信息,像登录状态、浏览偏好啥的。举个例子,你第一次进某个网站,选了中文界面、深色模式,下次再访问,网站秒变你喜欢的样子,这背后就是Cookie在偷偷“记笔记”。不过这小纸条存你电脑里,容易被人偷看,所以得小心点用!

1.2 Session:服务器的专属“私人档案库”

Session相当于是服务器自己的“小账本”,专门用来存用户的会话数据。当你登录网站,服务器就给你开个“档案袋”,把你购物车有啥、订单到哪一步了这些信息全塞进去。但它咋知道这份档案归谁呢?靠的就是Cookie里的Session ID,相当于档案编号,浏览器每次带着编号来,服务器一看就知道:“哦!原来是你!”

1.3 Token:万能通行令牌

Token就是服务器发的一串乱码“令牌”,你拿着它去访问网站的各种服务,就像拿着身份证证明“我是我”。Token最大的好处是不用服务器记太多东西,你每次来,它只需要验证令牌是真是假就行。现在流行的前后端分离、第三方登录,基本都靠Token“打天下”,移动端APP更是离了它不行。

二、Cookie、Session和Token,到底咋区分?

2.1 都藏在哪?能存多少东西?

Cookie就住你电脑里,浏览器帮你保管。不过它个头很小气,一般不能超过4KB,而且一个网站最多也就存50个左右。
Session住在服务器那边,理论上想存多少存多少,但服务器空间有限,存太多也顶不住。
Token呢,既可以放在客户端(比如APP里),也能在每次请求的时候跟着一起“跑”,大小没严格限制,通常几百字节。

2.2 安不安全?容易被偷吗?

Cookie因为在客户端,就像放在桌子上的纸条,很容易被人篡改。不过可以给它加把锁:

  • HttpOnly让JavaScript读不到它

  • Secure保证它只在安全的HTTPS通道里传送

  • SameSite防止被别人“冒名顶替”发请求

Session数据在服务器,相对安全些,但要是Session ID被坏人搞到手,也能冒充你。
Token用签名加密,一般改不了,但一旦被偷,坏人也能用,所以得设个有效期,到期就作废。

2.3 怎么在网络里“传送”?

  • Cookie最“自觉”,浏览器每次发请求,都会自动把相关的Cookie带上,除非你特意限制它。

  • Session得靠Cookie帮忙传递Session ID,虽然也能藏在URL里,但容易暴露,不太安全。

  • Token就比较“自由”,常见的是放在请求头的Authorization字段里,也能塞到请求体或URL里,全看开发者咋安排。

2.4 能用多久?啥时候过期?

  • Cookie想“活”多久,由服务器说了算。设置了expiresmax-age,它就是“长寿型”,到期才失效;不设置的话,浏览器一关,它就“凉凉”。

  • Session和Cookie里的Session ID绑在一起,服务器还会设个“闲置超时”,比如30分钟没操作,直接清空档案。

  • Token出生的时候就被定好了“保质期”(像JWT的exp字段),过期就得重新申请新令牌。

2.5 能不能适应复杂的网络环境?

要是网站用的是分布式系统(多个服务器协同工作),Cookie + Session组合就有点“吃力”。因为Session存在服务器里,多个服务器之间得同步数据,不然容易“认不出”用户。
Token就没这烦恼,它不需要服务器存啥,验证一下令牌是真是假就行,特别适合微服务、跨域这种复杂场景。

三、生活里都在哪见过它们?

3.1 Cookie的“日常工作”

  • 刷新闻的时候,为啥总给你推爱看的内容?Cookie在“搞事情”!它记住了你的兴趣标签。

  • 还有电商网站没登录时加进购物车的商品,也是Cookie临时存着。不过拿Cookie做广告追踪得小心,一不小心就违反隐私规定了。

3.2 Session的“用武之地”

电商平台的购物车、订单状态,后台管理系统的用户权限,在线聊天的实时状态……这些对安全性、实时性要求高的场景,都是Session的主场。服务器随时能查看、修改你的会话数据,还能强制你下线,安全感拉满!

3.3 Token的“高光时刻”

  • 现在很多网站支持微信、GitHub一键登录,靠的就是Token在不同平台间“传话”。

  • 前后端分离项目里,前端和后端不在一个域名下,Token能轻松实现跨域认证。

  • 还有手机APP,没Cookie可用,Token就是它唯一的“身份认证官”。

四、到底该选谁?

简单来说:

  • Cookie适合存点小偏好、临时数据

  • Session适合对安全要求高、需要集中管理的场景

  • Token则是跨域、移动端、微服务的“心头好”

实际开发中,大家经常把它们搭配着用,比如用Cookie传Session ID,或者把Token藏在Cookie里,增强安全性。具体咋选,还得根据业务需求,综合考虑安全、性能这些因素,找到最适合的方案!

本文原创首发于公众号【我做开发那些年】与网站【乔文小屋】,现同步转载至本平台,点击阅读原文
声明:如需转载本文至其他平台,请注明文章来源及公众号信息,感谢您对原创内容的尊重与支持!


该文章在 2025/7/2 8:16:38 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved