前言
对于CDN这种流量型产品来说,更高的压缩率意味着更低的传输带宽,也就意味着成本的降低。 目前阿里云CDN已经闷声不响的支持 Brotli 功能了。
介绍
Brotli 是由 Google 于 2015 年 9 月推出的无损压缩算法,Brotli 在瑞士德语中的意思是小面包(谷歌的命名貌似都是吃的)。
它通过用变种的 LZ77 算法,Huffman 编码和二阶文本建模进行数据压缩,是一种压缩比很高的压缩方法。 在压缩速度上跟 Deflate 差不多的同时却实现了更密集的压缩,对 Canterbury 资料库的压缩密度好于 LZMA 和 bzip2,与其他压缩算法相比,它有着更高的压缩效率。
目前 Brotli 已经广泛的用于 CDN 加速项目。
根据Google 发布的研究报告,Brotli 具有如下特点:
- 针对常见的 Web 资源内容,Brotli 的性能要比 Gzip 好 17-25%;
- Brotli 压缩级别为 1 时,压缩速度是最快的,而且此时压缩率比 gzip 压缩等级为 9(最高)时还要高;
- 在处理不同 HTML 文档时,brotli 依然提供了非常高的压缩率;
在兼容 GZIP 的同时,相较 GZIP:
- JavaScript 上缩小 14%
- HTML上缩小 21%
- CSS上缩小 17%
Brotli 的支持必须依赖 HTTPS,不过换句话说就是只有在 HTTPS 下才能实现 Brotli。
另外,除了 IE 和 Opera Mini 之外,几乎所有的主流浏览器都已支持 Brotli 算法,具体支持请看见下图:
效果
开启前:
开启后:
可以看到我博客的 jQuery 文件优化了 6.6 KB。
下面介绍的是阿里云CDN开启的方法,如果是ECS默认的Nginx、Apache 教程请参考:
Nginx 上部署 TLS1.3、Brotli、ECC双证书实践
LLStack – 基于LiteSpeed的一站式高性能PHP网站解决方案
开启
一、进入CDN管理控制台,https://www.aliyun.com/product/cdn
二、点击 域名管理 ,选择所需要开启的域名,点击 管理
三、点击 性能优化 选择 Brotli压缩
四、还可以通过 修改配置 ,输入需要的 压缩等级 即可
五、等缓存刷新后,就可以通过浏览器的开发者工具查看了。
content-encoding: gzip
content-encoding: br
当 content-encoding:
为 br
即成功开启。
六、由于截至发文帮助文档还没有更新,能提供压缩的文件类型应该和 GZip 一致:
text/html、text/xml、text/plain、text/css、application/javascript、application/x-javascript application/rss+xml、text/javascript、image/tiff image/svg+xml、application/json、application/xmltext
七、前往CDN官网预付费购买流量包更优惠!