Skip to content

Brotli

Brotli 常用于 Web 内容压缩,尤其适合静态文本资源。它在压缩率上通常优于 gzip,但压缩端成本更高。

核心思想

Brotli 结合字典、上下文建模和熵编码,并内置静态字典来改善常见文本内容的压缩效果。

为什么它在 Web 文本上常见

Brotli 的优势很大程度来自它对文本场景的优化:

  • 针对常见词片段和模式有静态字典。
  • 对 HTML、CSS、JS 这类结构化文本通常更友好。
  • 在“预压缩静态资源”场景里,压缩慢一点往往可以接受。

工程取舍

维度特点
压缩速度高级别较慢
解压速度较快
压缩率文本和 Web 资源表现好
内存依质量级别变化
流式支持

常见工程特征

  • 很适合在构建阶段提前压好静态资源。
  • 在动态实时压缩场景里,要谨慎评估高级别开销。
  • 与 Web 分发、CDN、浏览器生态结合较紧密。

适用场景

  • Web 静态资源
  • 文本内容分发
  • 对传输体积敏感的 HTTP 场景

调参时通常先看什么

  1. 是离线预压缩还是在线实时压缩。
  2. 质量级别是否值得拉高。
  3. 资源类型是否确实偏文本而不是二进制块数据。

使用时的常见坑

  • 把高质量级别直接用在实时请求路径。
  • 用它去处理本就不适合文本字典优化的数据,再得出“Brotli 不行”的结论。

C++ 示例

查看 Brotli C++ 示例