直接答案:第 95 期的 14 个首页原始 HTML 合计 1,310,636 字节(1.31 MB)。本地 gzip -9 后 227,922 字节(17.4%),brotli -q11 后 177,701 字节(13.6%)。线上同 14 个首页实测:12 个 gzip、1 个 brotli(E25)、1 个未压缩(E18);wire/decoded 中位 21.0%(11.3%–100%)。
与第 90 期的文章页相比:文章页本地 gzip 15.7%、brotli 11.7%,线上 10/10 gzip、0 brotli、中位 26.9%。两组内容与服务器不同,不能直接比较优劣;能说的是,首页样本里出现了文章页样本没有的两种情况——一个未压缩、一个使用 brotli。
方法:同一批首页,本地压缩 + 线上编码
样本与第 95 期相同:2024 年苏锡常首台(套)名单中的 14 个可识别官网首页(16 家中排除 E21 HTTP 502 与 E20 1,329 字节)。本地对缓存 HTML 做 gzip.compress(data, 9) 与 brotli.compress(data, quality=11);线上对每个首页发一次 GET,请求头带 Accept-Encoding: gzip, br,记录状态、Content-Encoding、wire 与 decoded 字节。
| 项 | 本地重压缩 | 线上实测 |
|---|---|---|
| 样本 | 14 个缓存首页 | 14 个首页各 1 条 URL |
| 比较 | raw / gzip / brotli | wire / decoded |
| 压缩档 | gzip 9、brotli quality 11 | 服务器实际选择 |
| 不能代表 | 服务器实际传输 | 站点全量或所有路径 |
本地:1.31 MB → gzip 228 KB / brotli 178 KB
| 口径 | 原始 | 压缩后 | 占原始 | 节省 |
|---|---|---|---|---|
| gzip -9 | 1,310,636 | 227,922 | 17.4% | 82.6% |
| brotli -q11 | 1,310,636 | 177,701 | 13.6% | 86.4% |
| brotli 相对 gzip | 227,922 | 177,701 | 78.0% | 22.0% |
按页看,gzip 中位 19.0%(9.1%–41.5%),brotli 中位 15.1%(6.8%–35.5%)。首页的压缩率不如文章页集中:有的页面几乎全是重复模板,压缩后不到 10%;有的页面文字/结构更独特,压缩后超过 40%。
线上:12 个 gzip、1 个 brotli、1 个未压缩
| 站点 | 状态 | Content-Encoding | wire 字节 | decoded 字节 | wire/decoded |
|---|---|---|---|---|---|
| E01 | 200 | gzip | 5,690 | 21,084 | 27.0% |
| E02 | 200 | gzip | 24,169 | 214,244 | 11.3% |
| E04 | 200 | gzip | 34,814 | 139,998 | 24.9% |
| E08 | 200 | gzip | 15,348 | 86,749 | 17.7% |
| E11 | 200 | gzip | 12,564 | 50,967 | 24.7% |
| E12 | 200 | gzip | 10,374 | 58,364 | 17.8% |
| E13 | 200 | gzip | 5,568 | 24,523 | 22.7% |
| E17 | 200 | gzip | 22,027 | 126,998 | 17.3% |
| E18 | 200 | —(未压缩) | 16,124 | 16,124 | 100.0% |
| E24 | 200 | gzip | 29,547 | 158,886 | 18.6% |
| E25 | 200 | br | 52,303 | 294,026 | 17.8% |
| E27 | 200 | gzip | 8,411 | 43,443 | 19.4% |
| E29 | 200 | gzip | 12,015 | 49,829 | 24.1% |
| E30 | 200 | gzip | 8,218 | 25,401 | 32.4% |
14 条合计 wire 257,172 字节、decoded 1,310,636 字节,整体 19.6%。E18 的响应没有 Content-Encoding,wire 与 decoded 都是 16,124 字节;E25 使用 br,wire 52,303 / decoded 294,026。
与文章页对比:不能只看一组
| 指标 | 14 个首页 | 36 篇文章页(第 90 期) |
|---|---|---|
| 本地 gzip 合计占比 | 17.4% | 15.7% |
| 本地 brotli 合计占比 | 13.6% | 11.7% |
| 线上编码 | 12 gzip / 1 br / 1 未压缩 | 10 gzip / 0 br / 0 未压缩 |
| 线上 wire 中位 | 21.0% | 26.9% |
两组样本的页面内容与服务器都不同,不能据此说哪类页面“更好”或“更省”。可复核的差异是:首页样本里出现了一个未压缩响应和一个 brotli 响应;文章页样本的 10 条全部是 gzip。
异常页与组成的关系
第 95 期里 E18 的 HTML 94.2% 是脚本、E25 的 91.6% 是样式。本期线上,E18 未压缩、E25 使用 brotli。两项观察同时出现,但样本只有 2 页,不能据此说“脚本页不压缩”或“样式页用 brotli”;本期只记录关联,不推断原因。
对验收的启示
- 首页也要查 Content-Encoding。 14 个首页里有 1 个未压缩;只看 HTML 大小会漏掉传输差异。
- brotli 不是“全站已开”。 首页样本只有 1 个用 br;应按页面类型/路径分别核对。
- 本地压缩率不是服务器配置。 gzip 9 / brotli 11 是实验室档,线上中位 21.0% 是服务器实际选择的结果。
- 不要用一组样本覆盖另一组。 首页和文章页的编码分布不同,验收应分别抽样。
- 压缩率不是性能评分。 本期不测 TTFB、LCP、解析或 CrUX。
局限
- 14 页 pilot:与第 95 期同一批首页;不是 30 家全样本。
- 本地档位:gzip 9 / brotli quality 11 是实验室上限,不是服务器默认。
- 线上单条 URL:每站 1 条首页,不能代表所有路径或边缘节点。
- 只测 HTML:不含图片、CSS、JS、字体与 HTTP 头。
- 单时间窗:2026-11-07 02:40 一次;未跨天复测。
- 不推断原因:未检查服务器配置;不把异常页与组成做因果解释。
数据与复算
本地:equipment-homepage-html-compression-2026.csv(14 行 × 9 列:原始/gzip/brotli 字节与占比、节省比例)。线上:equipment-homepage-content-encoding-2026.csv(14 行 × 10 列:状态、Content-Encoding、Content-Type、wire/decoded 字节与占比、错误、时间)。仓库内为 docs/research/2026-11-homepage-html-compression.csv 与 2026-11-homepage-content-encoding.csv。
探测:复用 scripts/article_html_compression_probe.py 的 local / live 子命令;单元测试 scripts/test_article_html_compression_probe.py(无网络,7 项)。运行:
python -m unittest scripts.test_article_html_compression_probe
配套:首页 HTML 体积组成 pilot、文章页 HTML 压缩 pilot、文章页 HTML 体积组成 pilot。
数据来源与口径
- 样本:第 95 期 14 个首页缓存(2026-11-07 抓取;16 家中排除 E21 502、E20 1,329 字节)。
- 本地压缩:2026-11-07,gzip 9 与 brotli quality 11,UTF-8 原始字节。
- 线上探测:2026-11-07 02:40,14 站各 1 条首页 URL,Accept-Encoding: gzip, br。