Isoline 指南
Cookie、本地存储、缓存与浏览器指纹有什么不同
Cookie、本地存储与缓存属于浏览器保留的状态;浏览器指纹则来自可观察信号的组合。因此,清除存储数据只能处理身份识别信息的一部分。
这些概念经常一起出现在隐私设置、排错说明和配置文件产品中,但行为差异很大。因此,“清一下浏览器”并不是完整的操作说明。
先理解各自的作用
| 机制 | 谁创建或控制 | 通常范围 | 常见用途 | 是否自动随请求发送? |
|---|---|---|---|---|
| HTTP Cookie | 服务器设置,浏览器按范围规则保存并回传 | 主机或域、路径、有效期与连接条件 | 会话标识、偏好、防滥用状态 | 请求匹配范围时会发送 |
| localStorage | 网站 JavaScript | 源,并受浏览器分区和策略影响 | 持久化键值应用状态 | 不会 |
| sessionStorage | 网站 JavaScript | 顶层浏览会话内的源 | 临时标签页或流程状态 | 不会 |
| HTTP 缓存 | 浏览器与 HTTP 缓存规则 | 缓存键、响应指令、浏览器策略 | 重用响应,降低延迟与流量 | 可能直接满足请求,或重新验证 |
| Cache Storage API | 网站或 Service Worker 的 JavaScript | 源或存储分区 | 离线资源和应用自行管理的响应 | 不会自动附加,由脚本决定如何使用 |
| 浏览器指纹 | 网站或其他观察者测量信号 | 取决于观察者与信号 | 安全、防欺诈、分析或追踪 | 部分信号出现在请求中,其余需主动执行代码 |
前五项涉及保留状态。最后一项是观察和关联方法,不过保留状态也可能成为其输入。
Cookie:按范围规则提供给服务器的状态
HTTP 本身大致无状态。Cookie 让服务器交给浏览器一组名称和值,并在之后匹配的请求中再次收到它。RFC 6265定义了响应中的 Set-Cookie、请求中的 Cookie 标头,以及浏览器存储模型。
Cookie 可以具备以下特性:
- 会话型: 保留到浏览器定义的会话结束。
- 持久型: 具有到期时间或最长存活时间。
- 仅主机: 只回传给设置它的主机。
- 域范围: 可发送给指定域与匹配子域。
- 路径范围: 只对匹配请求路径回传。
- Secure: 只通过浏览器定义的安全通道回传。
- HttpOnly: 不提供给脚本可访问的 Cookie API,但仍可用于 HTTP 请求。
这些属性影响传送与脚本访问,不会让 Cookie 值成为独立安全边界。RFC 6265 特别提醒,不应把 Path 依赖为安全机制,并建议对敏感 Cookie 内容采用安全传输和额外保护。
为什么删除 Cookie 会退出登录
很多服务在 Cookie 中保存随机会话标识,账号记录与会话详情留在服务器。删除 Cookie 移除了浏览器持有的标识,下一次请求就不再出示原会话。服务端账号与其他会话可能仍然存在。
这也解释了为什么复制验证 Cookie 很敏感:有效会话标识可能等同凭证。不要把原始 Cookie 粘贴到工单、日志、自动化输出或团队聊天。
本地存储:由脚本控制、属于特定源的状态
HTML 标准将 localStorage 定义为访问某个源的本地存储区域,设计用途是跨窗口使用并在当前会话之后保留。其中保存字符串键值对,具有该源访问权的脚本可以读取。
源通常由协议、主机和端口组成。因此以下属于不同存储范围:
https://app.example.testhttp://app.example.testhttps://admin.example.testhttps://app.example.test:8443
网址路径不属于源。同一源下的 /billing/ 和 /support/ 可以访问相同本地存储区域,除非应用自行建立逻辑分隔。
与 Cookie 不同,localStorage 条目不会自动附加到 HTTP 请求。网站脚本必须读取并决定如何使用,因此适合界面偏好、草稿状态和应用数据。但任何以该源权限执行的脚本都可能读取它。敏感会话设计应考虑脚本被入侵,而不是假定“本地”就意味着“保密”。
这里的持久性意味着数据能跨浏览会话保留,不代表永久保存。用户可以清除,浏览器策略可以限制,存储容量与逐出规则也可能影响保留。
sessionStorage 的存活时间不同
sessionStorage 与源及顶层浏览会话关联,适合在标签页或窗口流程持续期间保留、随后随会话结束的状态。复制或恢复标签页可能涉及浏览器特有的生命周期细节,因此不能把它作为重要工作的唯一记录。
本地存储只是网站数据机制之一
现代网页应用还可能把数据放进 IndexedDB、Cache Storage、Service Worker 注册、源私有文件系统、权限和其他浏览器管理的存储。只在开发者工具中清除 localStorage,可能留下其他状态。
HTML 标准的隐私指导建议让用户一起清除持久化存储机制,否则网站可能用一个存储区重建从另一存储区移除的标识。
“缓存”包含多种机制
HTTP 缓存
RFC 9111将 HTTP 缓存定义为响应消息存储,以及控制存储、获取和删除的系统。浏览器可重用仍新鲜的响应,或重新验证已过期响应,减少延迟和网络传输。
缓存键至少包含请求方法与目标 URI,响应头影响能否重用及可用多久。HTTP 缓存是优化层。某张图片或脚本被缓存,通常不代表用户已经登录。
缓存状态仍可能影响隐私。在某些威胁模型中,加载耗时或资源是否已存在可能透露信息。W3C 指纹指南也把观察缓存资源列为推断浏览器或用户配置的方法之一。
Cache Storage 与 Service Worker
Cache Storage API 为网站提供明确、由脚本控制的 Cache 对象,常用于离线网页应用。Service Workers 规范说明,这些缓存与浏览器 HTTP 缓存分开、按源隔离,由应用逻辑更新和删除,而不是按普通 HTTP 新鲜度规则处理。
排错时需要区分:
- 清除“缓存的图片和文件”针对浏览器普通缓存。
- 清除网站数据也可能移除 Cache Storage 与 Service Worker 状态。
- 重新加载时跳过 HTTP 缓存,仍可能有活动 Service Worker 控制请求。
决定如何检查或清除前,先说清是哪种缓存。
存储分区增加另一个判断条件
过去,按源划分范围可能让嵌入的第三方,在多个顶层网站中读取同一份存储。现代浏览器越来越多地把顶层网站或相关环境加入存储键。
Chrome 的存储分区说明指出,嵌在 a.com 中的 example.com 框架,不会自动与嵌在 b.com 中的同源框架共享 Local Storage、IndexedDB、Cache Storage、Service Worker 及部分通信机制。Chrome 表示,该功能自 Chrome 115 起已对所有用户启用,另一些 API 在后续版本有所调整。
因此,同一个嵌入源可能因外层网站不同而看到不同存储。但这不代表所有存储都有统一的双键模型。浏览器版本、顶层与嵌入环境、存储访问授权、企业策略、扩展与各 API 规则,都可能改变结果。
应测试确切环境,不要仅凭域名推断。
浏览器指纹是观察到的信号,不是一个文件夹
W3C 将浏览器指纹识别定义为:通过配置或其他可观察特征,识别或再次识别用户、用户代理或设备的能力。其 2025 年指南区分几种形式:
- 被动指纹识别: 使用请求或网络中已可见的信息,例如请求头与 IP。
- 主动指纹识别: 执行代码,观察窗口大小、字体、连接设备、性能、传感器或图形渲染。
- 短暂事件关联: 通过几乎同时发生的设备或环境变化关联不同上下文。
- 类似 Cookie 的技术: 利用可能比 Cookie 保留更久、或能重建 Cookie 的机制保存和读取状态。
指纹很少是浏览器保存的某个不可变值。观察者选择信号、组合它们,再判断与此前访问有多相似。浏览器更新、窗口变化、增加字体、连接设备或网络路由改变时,结果可能改变。清除 Cookie 后也可能仍相似,因为很多底层信号未变。
指纹不是身份的证明
一组信号可能为许多人共有,同一个人的信号也可能漂移。网站还可能把指纹与登录、服务端账号历史、网络信誉或存储标识结合。因此,清除数据后仍被认出,不能证明只有指纹识别发挥了作用。
同理,改变一个可见设置不能保证新身份。协调且常见的配置可能降低部分独特性,而大量不寻常的独立修改可能形成更罕见组合。这些信号不能支持“隐形”或“第三方一定接受”的保证。
常见清除操作实际改变什么
| 操作 | 可能效果 | 重要残留 |
|---|---|---|
| 删除某网站 Cookie | 移除匹配的浏览器 Cookie 状态,通常使该配置文件退出登录 | 服务端账号、其他设备和非 Cookie 存储可能仍在 |
| 删除 Cookie 和其他网站数据 | 依界面与范围,可能移除 Cookie、Web Storage、IndexedDB、Service Worker 等 | 密码管理器、下载文件、账号端数据与设备信号是独立项目 |
| 删除缓存图片和文件 | 移除普通缓存响应内容 | Cookie、本地存储与 Cache Storage 可能需另选 |
| 清除历史记录 | 移除所选范围的访问网址与相关建议 | 已下载文件与网站记录仍在 |
| 删除浏览器配置文件 | 从设备移除该配置文件的本地书签、历史、密码与设置 | 同步账号数据、下载或导出、备份及服务端数据可能仍在 |
| 新建配置文件 | 从另一组配置文件状态开始 | 设备、操作系统、浏览器构建与网络仍可能被关联 |
Chrome 的浏览数据指南分别列出历史、Cookie 与网站数据、缓存图片和文件、下载记录、自动填充、网站设置及托管应用数据。它也说明,删除下载记录不会删除电脑上的文件;在登录状态下删除数据,可能影响 Google 账号及其他同步设备。
具体效果取决于时间范围、配置文件、账号状态、浏览器版本和企业策略。删除难以恢复的数据前,应阅读确认说明。
独立配置文件如何影响各项机制
正确分隔的持久化配置文件,应各自拥有 Cookie 存储、网页存储、网站数据库、Cache Storage、HTTP 缓存、历史、网站权限和扩展状态,避免 B 直接继承 A 的已保存会话。
但以下信号可能仍相同:
- 浏览器引擎与版本。
- 操作系统和硬件。
- 系统字体与显示特征。
- 从主机继承的语言、时区或无障碍设置。
- 未配置独立路由时的 IP 和网络路径。
- 在应用层关联活动的操作行为或登录。
扩展、权限、窗口大小、语言设置和代理路由,也可能让不同配置文件呈现不同信号。最终效果取决于实现与场景。应把配置文件分隔评估为状态隔离,而不是指纹保证。
先诊断症状,再清除全部数据
“我退出登录了”
先查 Cookie。会话 Cookie 可能过期、被删除、被浏览器策略拒绝,或被服务器撤销。本地存储可以支持界面,但通常不是自动随 HTTP 请求发送、用于身份验证的 Cookie。
“网站忘了草稿或离线数据”
检查本地存储、IndexedDB、Cache Storage 和 Service Worker。确认源,以及页面处于顶层还是嵌入其他网站,因为分区可能改变可用存储。
“第一次重新加载很慢”
空的或过期 HTTP 缓存可能是因素。网络、服务器和 Service Worker 也可能造成同样表现,因此先记录请求时间与缓存状态再判断。
“清除数据后,网站仍认识这个环境”
可能原因包括:账号仍在别处登录、服务器通过账号或网络信息关联访问、其他浏览器存储幸存,或可观察特征关联了会话。指纹识别是一个假设,不是自动成立的答案。
按机制选择处理方法
- 涉及服务端会话时,检查或清除 Cookie。
- 网页应用保留本地状态时,检查按源划分的网站存储。
- 排查过期或离线内容时,区分 HTTP 缓存与 Cache Storage。
- 工作状态必须独立时,使用独立持久化配置文件。
- 将指纹识别视为对可观察信号的关联;清除数据或更改单项设置,无法消除所有识别依据。
这能避免两种高成本错误:删除超过必要范围的状态,以及以为空 Cookie 存储就创造了新设备身份。
适用限制
Web 存储与隐私行为随浏览器和版本演进。第三方 Cookie 规则、存储分区、数据逐出、同步、企业策略、扩展与私密浏览模式,都可能改变本文行为。本指南解释查阅日期时的标准和 Chrome 文档,不覆盖所有浏览器或网站实现。
关于本指南
- AI 辅助
- 本文由 AI 根据英文原文翻译。Isoline 对发布内容负责。目前尚无人工语言审核记录。
来源
来源支持下列主题。访问日期说明引用材料最近何时经过核查。
- IETF RFC 6265:HTTP 状态管理机制 Internet Engineering Task Force
- 支持的主题
- Cookie 存储、传送、属性语义、安全限制,以及随请求附带的会话权限。
- 访问日期
- WHATWG HTML 标准:Web Storage WHATWG
- 支持的主题
- 按源划分的 localStorage 与 sessionStorage 行为、持久性和隐私指导。
- 访问日期
- IETF RFC 9111:HTTP 缓存 Internet Engineering Task Force
- 支持的主题
- HTTP 缓存存储、键、有效期、重新验证和响应重用语义。
- 访问日期
- W3C Service Workers:Cache 与 CacheStorage World Wide Web Consortium
- 支持的主题
- 受源限制、由脚本控制的 Cache Storage,以及它与浏览器 HTTP 缓存的分隔。
- 访问日期
- Chrome Privacy Sandbox:存储分区 Google Privacy Sandbox
- 支持的主题
- Chrome 按顶层环境划分存储、推出情况与各 API 的限制。
- 访问日期
- Google Chrome 帮助:删除 Chrome 浏览数据 Google Chrome Help
- 支持的主题
- 不同清除类别、同步影响,以及删除历史后仍保留的数据。
- 访问日期
- Chrome for Developers:chrome.browsingData API Chrome for Developers
- 支持的主题
- 浏览器数据类型控制,包括 Cache Storage、Service Worker 和网站存储类别。
- 访问日期
- Google Chrome 帮助:使用多个配置文件管理 Chrome Google Chrome Help
- 支持的主题
- 本地 Chrome 配置文件分隔,以及删除配置文件的效果与限制。
- 访问日期
- W3C:在 Web 规范中减轻浏览器指纹识别 World Wide Web Consortium
- 支持的主题
- 被动、主动和有状态指纹识别的输入,以及关联判断的限制。
- 访问日期