先从最简单的比喻说起:Cookie是什么?为什么会“留”或“不留”

想象浏览器是你桌上的一个抽屉,网站是来你家放便利贴的人。Cookie就是那张便利贴,上面写着“下次我来了,记得我是X”。有两类便利贴:一类你放进抽屉里(persistent),放着直到过期或你扔掉;另一类只是今天临时贴在桌面(session),你关灯走人时就会被顺手收走。比特浏览器对不同账号隔离就是把每个账号的抽屉分开放,互不干扰。
技术要点(核心概念,一看明白)
- Session Cookie(会话型):通常不写入持久存储,只在当前浏览器会话(窗口/标签的会话)存在,关闭会话后删除。
- Persistent Cookie(持久型):带有Expires/Max-Age,会写入磁盘并在到期前都可用,重启浏览器或重开窗口后仍然存在。
- LocalStorage / IndexedDB / Cache / Service Worker:这些也是网页可用来存放数据的地方,行为与Cookie相似但由不同机制控制,往往也会在重开后保留。
- 无痕/临时模式:会在退出后清空所有会话数据,重开窗口后数据不再可用。
比特浏览器的“每账号隔离”与Cookie保留的关系
官方宣称“每个账号IP、Cookie、缓存数据完全隔离”,这通常意味着每个账号对应独立的资料目录(profile)。资料目录里会保存Cookies、LocalStorage、IndexedDB等文件。只要该资料目录不是临时创建或被配置为在关闭后删除,持久型Cookie和本地存储都会被写入磁盘并在重新打开窗口时继续被读取。
所以什么时候Cookie会被删除?
- 你使用的是“临时会话”或“无痕/一次性窗口”:所有会话数据在窗口或会话结束时被清除。
- 浏览器设置为“退出时清除Cookie/缓存”。
- 你或自动化工具主动清空了该账号的资料目录或使用了清理功能。
- Cookie本身带有短期Expires/Max-Age,到期自动失效。
- 平台或网站通过服务端策略使Session失效(比如强制登出、改变session id)。
如何自己验证Cookie在重新打开后是否还在?(实操步骤)
这部分像在厨房里试菜,简单几步就能验证。
- 打开目标账号窗口,登录某网站并设置“记住我”。
- 打开开发者工具 → Application(或存储)→ Cookies,记下某个Cookie的名称和值与过期时间。
- 关闭整个窗口或退出该账号的会话(注意不要选择清除数据的选项)。
- 重新打开同一账号窗口,回到开发者工具查看该Cookie是否存在和值是否相同。
另一种办法:用控制台查看
在该账号窗口的控制台输入 document.cookie(注意有些HttpOnly的cookie在这里看不到),也可以判断会话状态。或者检查浏览器资料目录中的cookie文件(如果知道路径),但那一步涉及文件权限与加密,普通用户通常不用这么做。
表:会话类型与数据保留对比
| 类型 | 是否保留(重启/重开) | 典型触发条件 |
| Session Cookie | 否(除非被写为持久) | 默认会话结束、无痕模式 |
| Persistent Cookie | 是(直到过期或被清除) | 带Expires/Max-Age、正常profile |
| LocalStorage/IndexedDB | 是(除非清除) | 正常profile,或手动删除/隐私清理 |
| 临时Profile | 否 | 一次性/临时会话、专用无痕容器 |
与“反指纹/矩阵运营”相关的注意事项
这里得说两句真话:Cookie隔离只是反追踪的一部分。即便Cookie完全隔离,平台还能用IP、浏览器指纹(User-Agent、屏幕分辨率、字体、WebGL信息等)、账号行为模式、登陆时间和操作习惯去关联账号。所以单纯依赖Cookie隔离并不能百分之百保证平台无法检测到操作者是同一人。比特浏览器做得好的话,会在多个层面降低关联风险,但运营时仍需注意网络、指纹配置和行为差异化。
实战建议(稍微有点像清单)
- 如果需要保持登录状态,确保使用非临时Profile并关闭“退出清理”选项。
- 定期检查重要账号的Cookie过期时间,必要时使用“记住我”或服务端的长期token机制。
- 不要把隐私清理工具设置为启动时自动清空所有Profile,除非你想实现“重开就无痕”。
- 关注LocalStorage和IndexedDB,它们和Cookie一起决定登录态和一些偏好设置。
- 对高风险账号,考虑手动备份资料目录或者导出浏览器的Cookie以便恢复。
常见误区与答疑
- 误区一:“只要关闭窗口,所有数据都会丢失。”——不对,只有临时/无痕会话才会丢失数据,常规profile会写入磁盘。
- 误区二:“Cookie就是唯一能识别用户的东西。”——不对,指纹、IP、行为同样重要。
- 误区三:“看不到document.cookie就说明没有登录态。”——不一定,HttpOnly的cookie在JS里看不到,但服务器端仍可用。
如果你想更保险地保留Cookie,应该怎么做
- 确认使用的是常规Profile(非临时),并在设置里关闭“退出时清除数据”。
- 登陆时选择“记住我”或让服务端发放长期token(注意安全风险)。
- 了解目标网站的Cookie策略,必要时与开发/技术同事沟通获取长期session方案。
- 如需备份,定期导出Cookie或复制资料目录(在浏览器完全退出时操作更安全)。
说到这里,我突然想到,很多人把“窗口”理解为标签页,实际上关键在“Profile”和“会话类型”。所以,下一次碰到“重开窗口Cookie还在吗?”时,先问自己三个问题:这是临时会话吗?Cookie本身会过期吗?浏览器被设置在退出时清除数据了吗?按这三条去查,很快就有答案了。
