缓存安全模型
缓存准入从拒绝开始。平台只预缓存由构建产出的、且被策略明确列出的静态资源。未分类请求、写操作、鉴权和会话端点、个性化数据、支付数据、流媒体、WebSocket、令牌与跨域不透明响应默认不缓存。
业务规则不能覆盖安全基线
PwaPolicy 用资源类别和路径表达意图;编译器将它与平台拒绝规则合并。业务不能注入原始 Workbox callback 或任意 worker handler,也不能用允许规则绕过平台拒绝类别。
| 资源 | 默认行为 |
|---|---|
| 构建产出的应用壳资产 | 显式匹配后预缓存 |
| 公共导航 | 按策略回退或网络优先 |
| 公共动态读取 | v3 显式开启后可按限制运行时缓存 |
| 私有会话与个性化响应 | 仅走网络 |
| 写请求、流媒体、令牌等 | 仅走网络 |
| 未分类请求 | 仅走网络 |
公共读取仍需业务证明
v3 运行时缓存只接受同源 GET、合规状态码与内容类型、允许的响应头语义及限定大小。它不能读取 Set-Cookie,也不会把请求携带 Cookie 直接视为私有。因此路径是否完全公开、是否按用户变化、是否会设置 Cookie,必须由业务团队审查;私有响应要带 Cache-Control: private。接入步骤见公共读取缓存。
Service Worker 所有权
worker 需经 HTTPS 在同源注册,scope 应缩小到实际应用路径。平台只清理本应用命名空间内的缓存;生产身份与缓存命名空间变更需要迁移计划。若同一个 origin 有根应用与子路径应用,根应用必须显式排除子 scope,并按部署顺序发布。