在学习爬虫和反爬的过程中,很多人都会被这三个概念反复“劝退”:
Cookie
Session
Token
常见困惑包括:
Cookie 和 Session 是不是一回事?
Token 是不是就是 Cookie?
为什么有的接口要 Token,有的只要 Cookie?
登录一次后,这些东西到底谁在起作用?
如果你也有类似疑问,那么 Day 15 这篇文章,就是专门为你准备的。
今天我们不堆概念,而是从服务器视角 + 爬虫实战视角,把这三者一次讲透。
🔍 一、先给结论(非常重要)
先记住这三句话,后面再解释:
Cookie:身份的“存放载体”
Session:服务器维护的“会话状态”
Token:用于接口校验的“访问凭证”
三者不是对立关系,而是协作关系。
🧠 二、Cookie 到底是什么?(最容易被误解)
📌 Cookie 的本质
Cookie 是服务器存放在客户端的一小段数据,用于:
标识访问者
维持状态
绑定身份
例如:
sessionid=abc123;
uid=9527;
csrf_token=xxx;
📌 Cookie 做了什么?
当你再次访问网站时:
浏览器自动携带 Cookie
服务器通过 Cookie 识别你
判断你是否登录、是否有权限
👉Cookie 本身不“存状态”,它只是“带标识”。
🧭 三、Session 是什么?为什么爬虫必须理解它?
📌 Session 的本质
Session 是服务器端维护的一段会话数据。
它通常以这样的形式存在:
Session ID(一个随机字符串)
Session 数据(登录状态、权限、时间等)
而Session ID 往往就存放在 Cookie 里。
📌 一个完整的流程是这样的:
你第一次访问网站
服务器创建一个 Session
把 Session ID 写入 Cookie
浏览器保存 Cookie
后续请求自动携带 Cookie
服务器根据 Session ID 找到对应 Session
📌 所以你可以这样理解:
Cookie 是钥匙,Session 是门后的房间。
📌 爬虫中为什么推荐使用 Session(requests)?
因为它能:
自动保存 Cookie
自动携带 Cookie
维持请求之间的关联
更像真实浏览器
session = requests.Session() session.get(url)这是“工程级爬虫”的基本操作。
🔐 四、Token 是什么?它和 Cookie 有什么不同?
📌 Token 的本质
Token 是一种“显式的访问凭证”,常用于:
API 接口
前后端分离系统
移动端 / 小程序
微服务架构
常见形式包括:
Authorization: Bearer xxxxx或:
{ "token": "xxxxx" }📌 Token 和 Cookie 的最大区别
| 对比点 | Cookie | Token |
|---|---|---|
| 存放位置 | 浏览器自动管理 | 手动携带 |
| 主要用途 | 网站会话 | 接口鉴权 |
| 自动性 | 自动 | 不自动 |
| 使用场景 | Web 页面 | API / App |
| 是否跨域 | 受限制 | 更灵活 |
📌 为什么很多接口“必须 Token”?
因为:
接口不依赖浏览器
不希望用 Cookie
希望前后端完全解耦
Token 更适合权限控制
所以你会看到:
页面访问:Cookie
接口请求:Token
🧩 五、三者在真实网站中的“协作关系”
真实网站中,三者经常一起出现。
🔁 常见组合 1:Cookie + Session
传统网站
CMS 系统
管理后台
🔁 常见组合 2:Cookie + Token
Cookie 保存 token
请求接口时从 Cookie 中读取 token
接口用 token 校验
🔁 常见组合 3:Session + Token
登录后生成 token
token 绑定 Session
token 用于接口访问
📌 所以一定要记住:
不要孤立看 Cookie / Session / Token,而要看“整体身份体系”。
🚨 六、新手最常见的 6 个错误认知
❌ 误区 1:有 Cookie 就一定登录了
实际上 Cookie 可能是匿名 Session。
❌ 误区 2:Token 就是 Cookie
Token 只是可能存放在 Cookie 里。
❌ 误区 3:Session 在客户端
Session 在服务器,客户端只有 ID。
❌ 误区 4:接口失败一定是参数问题
很多时候是 Token / Cookie 不对。
❌ 误区 5:复制 Cookie 就能长期用
Cookie / Token 都可能过期。
❌ 误区 6:不用理解,能跑就行
短期可以,长期必翻车。
🛠 七、爬虫实战中该怎么应对?(经验总结)
给你一套非常实用的判断流程:
先看接口是否依赖 Cookie
再看是否存在 Token 字段
分析 Token 从哪里来(接口 / Cookie / JS)
用 Session 管理 Cookie
用 Headers 显式携带 Token
观察过期时间与刷新逻辑
这套流程可以应对90% 的身份类反爬问题。
📌 八、Day 15 的关键认知总结
请记住这段话:
Cookie 解决“你是谁”
Session 解决“你当前的状态”
Token 解决“你有没有权限访问这个接口”
理解了这三点,
你就真正跨过了爬虫学习中的一个巨大门槛。
✅ 总结
今天你彻底理清了:
✔ Cookie 的真实作用
✔ Session 的服务器逻辑
✔ Token 的接口鉴权意义
✔ 三者之间的关系与区别
✔ 常见误区与正确理解方式
✔ 爬虫中处理身份问题的整体思路
从 Day 15 开始,你已经具备了理解中高级爬虫登录与权限体系的能力。