Brotli是什么鬼?

沉迷于工作太久,以至于对新技术的了解已经开始落后了,比如 Brotli,第一感觉是:这是什么鬼?

Brotli是什么鬼?

简而言之: Brotli就是一个类似Gzip的压缩算法

Brotli 是Google 工程师 Jyrki Alakuijala 和 Zoltán Szabadka 开发的一个压缩算法。Brotli最早被用于做压缩 WOFF2 网络字体的大小,后来才被用作网站静态内容压缩。

时间轴

  1. 2013年,Brotli第一个版本被用来压缩 WOFF2 网络字体
  2. 2015年, Google 推出重写了编码器版本的 Brotli,并将之作为 HTTP压缩的增强工具
  3. 2016年, IETF将 Brotli 列为标准草案( RFC 7932

Brotli 比Gzip更强吗?

是的

Javascript : 比 gzip小 14%

HTML : 比 gzip小 21%

CSS : 比 gzip小 17%

via brotli performance

Brotli 是万能的吗?

当然不是

Brotli对静态内容效果很好,但对于动态压缩效果并不太好:

根据 OpenCPU – Compression Benchmarks: brotli, gzip, xz, bz2 的测试结果,Brotli 的压缩时间比gzip要大太多!

所以对于需要实时压缩的内容,Brotli是非常不适合的。

现在能用了吗?

能!

浏览器支持

看图:

服务器支持

ngx_brotli
mod_brotli

check是否启用

请求时在 Accept-Encoding 加上 br

Accept-Encoding: gzip, deflate, br

如果服务器支持,则会返回:

Content-Encoding: br

有什么需要注意的?

Brotli 只支持 HTTPS!

Brotli 只支持 HTTPS!

Brotli 只支持 HTTPS!