背景与价值

  • 合理缓存治理可大幅降低重复传输与后端压力;静态资源强缓存+版本化,API 协商缓存提升稳态效率。

静态资源(强缓存 + 版本化)


// Node/Express 示例
app.use('/assets', express.static('public/assets', {
  maxAge: '365d', etag: true, lastModified: true, immutable: true
}));

API 协商缓存


app.get('/api/data', (req, res) => {
  const etag = computeETagForData();
  if (req.headers['if-none-match'] === etag) {
    res.status(304).end(); return;
  }
  res.setHeader('ETag', etag);
  res.setHeader('Cache-Control', 'private, max-age=0, must-revalidate');
  res.json(getData());
});

一致性与版本策略

  • 使用内容哈希文件名(app.a1b2c3.js);CDN 与浏览器可长期强缓存。
  • 变更时更新引用与哈希;移除旧版本以减少冗余占用。

指标验证(Chrome 128/Edge 130 + CDN)

  • 命中率:静态资源 ≥ 95%;API 304 命中 ≥ 60%。
  • 带宽节省:总传输量降低 30%–55%。
  • 一致性:版本切换后错误内容率 ≤ 0.2%。

风险与治理

  • 强缓存污染:未版本化导致更新不可见;必须统一内容哈希与 immutable
  • CDN 与源站不一致:回源与刷新策略需审慎;对关键资源启用主动刷新。

测试清单

  • 版本切换:新旧资源引用一致,无 200/304 互相污染。
  • 弱网与离线:缓存命中后体验稳定;失败时合理回退。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部