小牛丨软件测试学习小牛丨软件测试学习
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
  • 网络协议精华文章

    • 网络协议精华文章
    • 1. HTTP 协议面试怎么讲
    • 2. HTTPS 和 HTTP 有什么区别
    • 3. GET 和 POST 区别怎么回答
    • 4. 状态码 200 302 400 401 403 404 500 怎么理解
    • 5. Cookie Session Token 怎么区分
    • 6. TCP 三次握手四次挥手怎么讲
    • 7. 抓包分析接口问题怎么做
    • 8. 网络超时和连接失败怎么排查
    • 9. 接口测试中的请求头和响应头怎么看
    • 10. 网络协议题怎么结合项目回答
⌕
🛒项目实战📦资料包🛠测试神器AIAI路线CV简历测评🧭入行测评🧪测开测评🎯训练营🏆案例❤赞赏我

5. Cookie Session Token 怎么区分

Cookie、Session、Token 是登录鉴权和接口测试中非常常见的概念。很多测试同学能说“Cookie 存客户端,Session 存服务端,Token 是令牌”,但面试时如果只背这三句话,还是不够。测试岗位更需要理解它们在登录、权限、抓包、接口自动化、App 测试、登录失效、越权测试中的实际作用。

登录态问题是项目里高频 Bug:明明登录了却提示未登录,接口返回 401,切换账号后数据串了,退出登录后接口仍能访问,Token 过期处理不合理,Cookie 没有设置 Secure 或 HttpOnly。要定位这些问题,必须理解 Cookie、Session、Token 的区别和配合方式。

一、Cookie 是什么

Cookie 是浏览器保存在客户端的一小段数据,由服务端通过响应头 Set-Cookie 下发,之后浏览器会在请求中自动带上 Cookie。

例如响应头:

Set-Cookie: JSESSIONID=abc123; Path=/; HttpOnly

后续请求头:

Cookie: JSESSIONID=abc123

Cookie 常用于保存会话标识、用户偏好、追踪信息等。

测试要关注:

  • 登录后是否下发 Cookie;
  • 后续请求是否自动携带 Cookie;
  • Cookie 是否过期;
  • 退出登录后 Cookie 是否清除;
  • Cookie 是否设置 HttpOnly、Secure、SameSite;
  • 是否存在敏感信息明文写入 Cookie。

二、Session 是什么

Session 通常保存在服务端,用于记录用户登录状态。浏览器端一般只保存一个 Session ID,比如 JSESSIONID。服务端根据这个 ID 找到对应的用户会话。

简单理解:

  • Cookie 保存 Session ID;
  • Session 数据存在服务端;
  • 请求带上 Cookie 后,服务端通过 Session ID 找到用户信息。

测试场景:

  • 登录成功后服务端创建 Session;
  • 未登录访问接口返回 401 或跳转登录页;
  • Session 过期后需要重新登录;
  • 退出登录后 Session 应失效;
  • 多端登录是否互踢取决于业务设计。

三、Token 是什么

Token 是一种令牌,通常由服务端登录成功后返回,客户端保存后在后续请求中携带。

常见携带方式:

Authorization: Bearer xxxxxx

Token 常用于前后端分离、App、小程序、开放接口等场景。

Token 可以是普通随机字符串,也可以是 JWT。测试岗位不一定要深入 JWT 原理,但要知道 Token 代表登录凭证,丢失、过期、伪造、泄露都会影响安全。

测试要关注:

  • 登录成功是否返回 Token;
  • 后续接口是否必须携带 Token;
  • Token 缺失是否返回 401;
  • Token 过期是否提示合理;
  • 退出登录后 Token 是否失效;
  • 是否可以使用旧 Token 访问;
  • Token 是否出现在 URL 中;
  • Token 是否通过 HTTPS 传输。

四、Cookie 和 Session 的关系

Cookie 和 Session 经常配合使用。典型流程:

  1. 用户登录;
  2. 服务端验证用户名密码;
  3. 服务端创建 Session;
  4. 服务端通过 Set-Cookie 返回 Session ID;
  5. 浏览器后续请求自动带 Cookie;
  6. 服务端根据 Session ID 找到用户登录状态。

所以 Cookie 在客户端,Session 在服务端,Cookie 里通常存的是 Session ID。

如果 Cookie 丢了,服务端就找不到 Session,用户可能变成未登录。

五、Token 和 Session 的区别

1. 保存位置不同

Session 信息在服务端,客户端只保存 Session ID。

Token 通常由客户端保存,服务端通过校验 Token 识别用户。

2. 适用场景不同

Session 常见于传统 Web。

Token 更常见于前后端分离、App、小程序、开放 API。

3. 扩展性不同

Session 依赖服务端存储,分布式系统需要 Session 共享或集中存储。

Token 更适合无状态服务,但也要考虑失效、续期和安全。

4. 退出登录处理不同

Session 可以服务端直接删除。

Token 如果是无状态 JWT,服务端不保存状态,失效处理要靠过期时间、黑名单或刷新机制。

六、接口测试中怎么处理 Cookie 和 Token

1. Cookie 登录态

浏览器会自动携带 Cookie,但 Postman 或自动化脚本需要管理 Cookie。

测试时可以查看响应头 Set-Cookie,确认登录后是否下发。

2. Token 登录态

登录接口返回 Token 后,后续接口要在 Header 中带上:

Authorization: Bearer {{token}}

Postman 可以在 Tests 中提取 Token;自动化脚本可以把 Token 保存到变量。

3. 自动化测试

自动化中常见流程:

  1. 调登录接口;
  2. 提取 Token 或 Cookie;
  3. 后续接口自动带登录态;
  4. 校验未登录、过期、无权限场景。

七、常见登录态问题怎么定位

1. 接口返回 401

排查:

  • 是否未登录;
  • Token 是否缺失;
  • Token 是否过期;
  • Cookie 是否没带;
  • Header 名称是否写错;
  • Bearer 格式是否正确;
  • 是否跨域导致 Cookie 未携带。

2. 登录后页面仍提示未登录

排查:

  • 登录接口是否成功;
  • 是否返回 Set-Cookie 或 Token;
  • 浏览器是否保存 Cookie;
  • 后续接口是否带登录态;
  • 前端是否存储 Token 失败;
  • 域名、Path、SameSite 配置是否正确。

3. 退出登录后仍能访问接口

排查:

  • Session 是否删除;
  • Token 是否加入失效机制;
  • 前端是否清除本地 Token;
  • 后端是否校验 Token 状态;
  • 是否存在缓存。

4. 切换账号后数据串号

排查:

  • Cookie 或 Token 是否未更新;
  • 前端缓存是否未清;
  • 服务端 Session 是否复用异常;
  • 接口是否根据用户 ID 做权限校验。

八、安全测试关注点

Cookie、Session、Token 相关安全点包括:

  • Token 是否放在 URL 中;
  • Cookie 是否包含敏感信息;
  • Cookie 是否设置 HttpOnly;
  • HTTPS 下 Cookie 是否设置 Secure;
  • Token 过期时间是否合理;
  • 退出登录后 Token 是否失效;
  • 是否存在越权访问;
  • 是否可以伪造用户 ID;
  • 是否可以复用旧 Token。

登录态不仅是功能问题,也是安全问题。

九、面试回答模板

如果面试官问“Cookie、Session、Token 怎么区分”,可以这样回答:

Cookie 是客户端保存的数据,浏览器会在请求中自动携带;Session 通常保存在服务端,用来保存用户登录状态,客户端 Cookie 中一般保存 Session ID;Token 是服务端登录成功后返回的令牌,前端或 App 保存后在请求 Header 中携带,比如 Authorization: Bearer token。Session 更常见于传统 Web,Token 更常见于前后端分离和 App。测试时我会关注登录成功后是否下发 Cookie 或 Token,后续接口是否正确携带,未登录、过期、退出登录、权限不足和越权访问是否处理正确。

十、常见追问

追问:Cookie 和 Session 什么关系?

Cookie 通常保存 Session ID,Session 数据保存在服务端。请求带 Cookie 后,服务端根据 Session ID 找到用户会话。

追问:Token 放哪里?

常见放在请求 Header 的 Authorization 中,不建议放 URL,避免被日志和浏览器历史记录。

追问:Token 过期怎么测?

可以等待过期、修改过期时间、使用旧 Token、清除 Token,验证是否返回 401 或合理提示。

追问:退出登录后怎么测?

退出后用旧 Cookie 或旧 Token 再请求接口,应无法访问受保护资源。

十一、练习清单

  1. 抓包查看 Set-Cookie;
  2. 查看请求中的 Cookie;
  3. 登录接口提取 Token;
  4. 后续接口带 Authorization;
  5. 测 Token 缺失;
  6. 测 Token 过期;
  7. 测退出登录后旧 Token;
  8. 测普通用户访问管理员接口;
  9. 检查 Token 是否出现在 URL;
  10. 准备 Cookie Session Token 面试回答。

Cookie、Session、Token 不是孤立概念,而是登录态、鉴权和安全测试的基础。面试时要结合登录、退出、过期、权限和接口自动化来讲。

配套刷题:

  • 网络协议测试面试题
相关推荐

下一步可以看这些

面试通关软件测试面试通关系列精华文章

把面试题、项目、简历和训练营串成一套求职准备路径。

入行路线零基础入行软件测试专题路径

从测评、学习路线、项目、简历到面试,按顺序入行。

进阶路线初中级测试进阶高级专题路径

接口自动化、性能测试、CI/CD、复杂业务质量保障进阶路线。

AI 方向AI 测试学习路线专题页

大模型评测、RAG 测试、Agent 测试和 AI 自动化路线。

求职结果Offer 案例 / 学员案例展示

看看真实学员 Offer 案例,判断目标和学习投入是否匹配。

资料 / 交流群添加小牛微信

备注:资料、简历、AI 或找工作,领取对应资料或进交流群。

添加小牛微信
Prev
4. 状态码 200 302 400 401 403 404 500 怎么理解
Next
6. TCP 三次握手四次挥手怎么讲