100 天学会爬虫 · Day 15:Session、Cookie、Token 到底有什么区别?一篇彻底讲清
2026/7/12 21:24:49 网站建设 项目流程

在学习爬虫和反爬的过程中,很多人都会被这三个概念反复“劝退”:

  • 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 里


📌 一个完整的流程是这样的:

  1. 你第一次访问网站

  2. 服务器创建一个 Session

  3. 把 Session ID 写入 Cookie

  4. 浏览器保存 Cookie

  5. 后续请求自动携带 Cookie

  6. 服务器根据 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 的最大区别

对比点CookieToken
存放位置浏览器自动管理手动携带
主要用途网站会话接口鉴权
自动性自动不自动
使用场景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:不用理解,能跑就行

短期可以,长期必翻车。


🛠 七、爬虫实战中该怎么应对?(经验总结)

给你一套非常实用的判断流程

  1. 先看接口是否依赖 Cookie

  2. 再看是否存在 Token 字段

  3. 分析 Token 从哪里来(接口 / Cookie / JS)

  4. 用 Session 管理 Cookie

  5. 用 Headers 显式携带 Token

  6. 观察过期时间与刷新逻辑

这套流程可以应对90% 的身份类反爬问题


📌 八、Day 15 的关键认知总结

请记住这段话:

Cookie 解决“你是谁”
Session 解决“你当前的状态”
Token 解决“你有没有权限访问这个接口”

理解了这三点,
你就真正跨过了爬虫学习中的一个巨大门槛


✅ 总结

今天你彻底理清了:

✔ Cookie 的真实作用
✔ Session 的服务器逻辑
✔ Token 的接口鉴权意义
✔ 三者之间的关系与区别
✔ 常见误区与正确理解方式
✔ 爬虫中处理身份问题的整体思路

从 Day 15 开始,你已经具备了理解中高级爬虫登录与权限体系的能力

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询