压缩等级:更高不等于更好
Brotli 最高等级比中等等级慢很多,体积却只小一点。动态内容用最高等级往往是净亏损。
6 分钟协议与压缩

要点
静态资源可以预压缩到最高等级(成本一次性);动态内容要用中等等级,压缩耗时会直接加到响应时间上。
收益递减曲线
压缩等级越高,体积越小、耗时越长。但这两条曲线的形状不同:体积下降很快趋于平缓,耗时上升却越来越陡。
静态与动态要分开对待
关键区别是「压缩几次」
静态资源在构建时压缩一次,之后无限次复用——用最高等级完全值得,那点 CPU 时间摊到无数次请求上等于零。动态响应每次请求都要重新压缩,压缩耗时直接加在用户的等待时间里。
- 构建产物(JS/CSS/字体):预压缩到最高等级,同时产出 .br 和 .gz 两份;
- API 与 SSR 响应:用中等等级实时压缩;
- 小于约 1KB 的响应:不压缩,压缩头的开销可能超过收益;
- 已压缩格式(JPEG、PNG、MP4、zip):不要再压,白花 CPU。
怎么确认配置生效
# 请求
Accept-Encoding: br, gzip
# 期望的响应
Content-Encoding: br
Vary: Accept-Encoding如果响应没有 Content-Encoding,说明压缩没生效——常见原因是 CDN 的压缩开关只对白名单 MIME 类型生效,而你的响应 Content-Type 不在其中。
在你的网站验证
边缘核验确认你的资源实际使用的压缩算法与体积