直接答案:36 个文章页在响应头里没有一个可以缓存:31 页写 no-store、1 页写 private、4 页没有 Cache-Control;没有任何页面给出正数 max-age。ETag 只有 3 页、Last-Modified 为 0 页,Vary 则有 35 页。

这些页面都返回 200 与 text/html。问题不在“有没有头”,而在指向:no-store 让浏览器与中间缓存都不保留副本,每次访问都要重新取回 HTML。

36
文章页
0
可缓存
31
no-store
3
有 ETag
0
有 Last-Modified
35
有 Vary

方法:请求头快照,先 HEAD 后 GET

用第 45 期缓存的 36 个文章页 URL(10 站,HTTP 200、HTML ≥5 KB)重新请求一次响应头:先发 HEAD;若失败、非 2xx 或没有 Content-Type 再发一次 GET。只读响应头,不保存正文。间隔 0.5 秒,单次快照(2026-11-06 13:42–13:44)。

项判定边界
可缓存max-age 或 s-maxage > 0不看 CDN 边缘策略
no-storeCache-Control 含 no-store不代表 CDN 一定不缓存
验证器存在 ETag / Last-Modified不测试 304 是否返回
压缩HEAD 通常不返回 Content-Encoding本期不据此判断压缩

结果:no-store 是主流

头字段页面数占 36
Cache-Control 存在3288.9%
其中 no-store3186.1%
其中 private12.8%
无 Cache-Control411.1%
正数 max-age / s-maxage00%
ETag38.3%
Last-Modified00%
Vary3597.2%
Age25.6%

站点差异:八站统一 no-store

站点页数Cache-ControlETagVary
E03 / E06 / E09 / E14各 5全部 no-store0全部
E22 / E23各 5全部 no-store0全部
E281no-store0无
E261private0有
E163无3有
E191无0有

同一个站点的所有文章页策略一致,说明这是服务器或 CMS 的全局配置,而不是单页设置。E16 是唯一使用 ETag 的站点(3 页),但它没有 Cache-Control;E19 两者都没有,只有 Vary。

与首页缓存 pilot 对比

口径首页(第 49 期,25 站)文章页(本期,36 页)
正数 max-age10
no-store831
无 Cache-Control84
ETag43
Last-Modified40
Vary2235

文章页比首页更激进地关闭缓存:no-store 从 8/25 升到 31/36;Last-Modified 一个都没有。两批样本站点不同,只能并列比较。

对验收的启示

  1. 把“文章页可缓存”写进验收。 36 页 0 个正数 max-age;可要求静态文章给 5–60 分钟浏览器缓存。
  2. 区分新闻流与文章页。 no-store 可能来自全站统一配置,文章页可以单独放宽。
  3. 至少提供验证器。 ETag 只有 3 页、Last-Modified 为 0,无法走 304。
  4. Vary 已经很普及。 35/36 有 Vary,这部分不用改。
  5. 压缩另测。 本期用 HEAD,Content-Encoding 不可靠,不能据此判断是否压缩。

局限

  • 单次快照:2026-11-06 13:42–13:44 的响应头,可能随 CDN 变化。
  • HEAD 限制:部分头(如 Content-Encoding)在 HEAD 中缺失,未据此做结论。
  • 未测 304:有 ETag 不代表服务器会正确返回 304。
  • 不看 CDN:源站头与边缘缓存策略可能不同。
  • 10 站 36 页 pilot:不外推行业总体。

数据与复算

匿名数据:equipment-article-cache-headers-2026.csv(36 行 × 18 列:状态、内容类型、Cache-Control 解析结果、max-age、ETag/Last-Modified/Vary/Age、原始 Cache-Control 与错误)。仓库内为 docs/research/2026-11-article-cache-headers.csv。

解析:scripts/article_cache_header_probe.py;单元测试 scripts/test_article_cache_header_probe.py(无网络,9 项)。运行:

python -m unittest scripts.test_article_cache_header_probe

配套:首页缓存与压缩 pilot、首页安全响应头 pilot、响应头 48 小时复测。

数据来源与口径

  1. URL:第 45 期 36 个文章页(10 站),HTTP 200、HTML ≥5 KB。
  2. 请求:HEAD 优先,失败再 GET;只读响应头,间隔 0.5 秒。
  3. 时间:2026-11-06 13:42–13:44。
关于作者

凌壹信息Official(交付团队),负责企业网站、品牌与智能制造项目的需求梳理、方案与验收协作。本文只记录单次响应头快照,不判断 CDN 边缘缓存、压缩效果或页面性能,也不构成对任何站点配置的最终结论;10 站 36 页 pilot,不外推行业。

no-store 不是“已配置”,而是“别缓存”

36 页 0 个可缓存、31 页 no-store;ETag 仅 3 页、Last-Modified 0 页。

预约内容验收方案