直接答案:25 个首页在约 38 小时后复测(2026-11-03 11:41/12:40 → 2026-11-05 01:4x),24 个站点的安全头没有变化、24 个站点的缓存头没有变化。安全头只有 E28 新增 X-Frame-Options: DENY,防嵌入从 14 站变为 15 站;缓存头只有 E24 新增 Vary: Accept-Encoding,Vary 从 22 站变为 23 站。其余覆盖与策略完全一致。
HSTS 5、CSP 11、nosniff 6、Referrer-Policy 4、Permissions-Policy 1、版本泄露 6 均不变;Cache-Control 策略分布、ETag 4、Last-Modified 4、gzip 23、Brotli 1、无压缩 1 也都不变。
方法:同一批站点,两次复测
原计划 24 小时复测;因全局写锁被其他轨道长期占用,实际推迟到约 38 小时后。2026-11-05 01:40–01:41 串行重访 25 个首页(站间 ≥0.8 秒),先不带 Accept-Encoding 取安全头,再带 gzip, deflate, br 取缓存与压缩头;25 个站点两轮均返回 200,非 200 已重试 3 次。
| 项 | 基准 | 复测 | 间隔 |
|---|---|---|---|
| 安全头 | 2026-11-03 11:41–11:42 | 2026-11-05 01:40–01:41 | 约 38 小时 |
| 缓存压缩 | 2026-11-03 12:40–12:41 | 2026-11-05 01:40–01:41 | 约 37 小时 |
| 可用站点 | 25 | 25 | — |
安全头:只有 E28 增加 XFO
| 项 | 基准 | 复测 | 变化 |
|---|---|---|---|
| HSTS | 5 | 5 | 0 |
| CSP | 11 | 11 | 0 |
| 防嵌入(XFO 或 frame-ancestors) | 14 | 15 | +1 |
| nosniff | 6 | 6 | 0 |
| Referrer-Policy | 4 | 4 | 0 |
| Permissions-Policy | 1 | 1 | 0 |
| 版本泄露 | 6 | 6 | 0 |
| 仍为 HTTP | 4 | 4 | 0 |
| 覆盖分 | 基准站点数 | 复测站点数 |
|---|---|---|
| 0 | 7 | 6 |
| 1 | 6 | 7 |
| 2 | 7 | 7 |
| 4 | 4 | 4 |
| 5 | 1 | 1 |
| 6 | 0 | 0 |
E28 在两次抓取之间新增了 X-Frame-Options: DENY;其余 24 个站点的 HSTS/CSP/防嵌入/nosniff/Referrer/Permissions 全部保持原值。六项全无的站点从 7 个降到 6 个,原因只有这一处变化。
缓存压缩:只有 E24 增加 Vary
| 项 | 基准 | 复测 | 变化 |
|---|---|---|---|
| 无 Cache-Control | 8 | 8 | 0 |
| no-store | 8 | 8 | 0 |
| private / no-cache | 8 | 8 | 0 |
| 正 max-age | 1 | 1 | 0 |
| ETag | 4 | 4 | 0 |
| Last-Modified | 4 | 4 | 0 |
| Vary: Accept-Encoding | 22 | 23 | +1 |
| gzip / br / 无压缩 | 23 / 1 / 1 | 23 / 1 / 1 | 0 |
| chunked / Content-Length | 16 / 9 | 16 / 9 | 0 |
E24 的 Cache-Control(no-cache, private)与 gzip 编码都没变,只补上了 Vary: Accept-Encoding。其余 24 个站点的缓存策略、校验器与压缩编码逐项一致。
变化清单
| 站点 | 变化 | 影响 |
|---|---|---|
| E28 | 新增 X-Frame-Options: DENY | 防嵌入 14→15,该站覆盖分 0→1 |
| E24 | 新增 Vary: Accept-Encoding | Vary 22→23,压缩与缓存策略不变 |
| 其余 23 站 | 安全头与缓存头均无变化 | — |
对验收的启示
- 响应头策略在 38 小时内很稳定。 两套头各只有 1 个站点变化,绝大多数站点无需重复整改。
- 逐字段对比能定位单点改动。 总量只差 1,但能明确是 E28 的 XFO 与 E24 的 Vary。
- 单个头也能改变覆盖分。 E28 只加一个 XFO,覆盖分从 0 变 1,六项全无站点从 7 降到 6。
- Vary 是压缩的配套项。 E24 补上 Vary 后,缓存可以区分压缩版本,压缩本身没有变化。
- 间隔要如实标注。 本次约 38/37 小时,不是 24 小时,不能当作准点复测。
局限
- 间隔约 38 小时:因锁占用延迟,不代表 24 小时节点的变化速度。
- 单次复测:只比较两个时间点,不推断改动原因。
- CDN/WAF 差异:不同地区、时间或 UA 可能返回不同头。
- 只读响应头:不验证 TLS、缓存命中、压缩体积或浏览器行为。
- 25 家 pilot:不外推行业。
- 站点样本:第 48 期 25 个可用首页;主机取自其最终 URL。
- 抓取:2026-11-05 01:40–01:41,串行、站间 ≥0.8 秒;安全头不带 Accept-Encoding,缓存头带 gzip/deflate/br。
- 失败处理:非 200 重试 3 次;本次两轮均 25/25 为 200。
- 比较:按模块输出的布尔值与枚举值逐项比较,字节/时间不参与变化判定。
数据与复算
匿名数据:equipment-security-headers-recheck-2026.csv(25 行,安全头基准/复测/变化);equipment-cache-compression-recheck-2026.csv(25 行,缓存压缩基准/复测/变化)。仓库内为 docs/research/2026-11-*-recheck.csv。
评估:scripts/security_headers_probe.py(10 项单测)、scripts/cache_compression_probe.py(10 项单测);比较:scripts/header_recheck.py(6 项单测)。运行:
python -m unittest scripts.test_security_headers_probe scripts.test_cache_compression_probe scripts.test_header_recheck
配套:首页安全响应头 pilot、首页缓存与压缩 pilot、文章页链接结构延迟复测。、响应头 48 小时复测