Brotli:一种用于更快互联网的新压缩算法

765 位读者喜欢这个。
Open source network cable

Opensource.com

Brotli 是一种新的开源压缩算法,旨在实现更快速的用户互联网体验。

现代网页通常由数十兆字节的 HTML、CSS 和 JavaScript 组成,这还不包括图像、视频或其他大型文件内容,所有这些都导致了庞大的下载量。正是由于这些负载,页面才以压缩格式传输;它们显著减少了网站访问者请求网页到页面完全加载在屏幕上并准备好使用之间所需的时间。

虽然 Brotli 算法是 谷歌在 2015 年 9 月宣布的,但直到最近,大多数网络浏览器才采用它。HTTP 服务器 Apachenginx 现在都提供 Brotli 压缩作为一种选项。除了谷歌,其他商业供应商(如 CloudflareDreamHost)也已开始部署对 Brotli 的支持。

与优秀的传统 gzip 文件压缩和解压缩算法相比,Brotli 的开源算法额外减少了 20% 到 25% 的数据大小。Brotli 之所以能实现这种卓越的性能,是因为它使用了一个字典,其中包含了英语、西班牙语、中文、印地语、俄语和阿拉伯语中最常用的单词和音节,以及机器可读语言(特别是 HTML 和 JavaScript)中常用的短语。这使得 Brotli 在压缩和解压缩方面明显优于 gzipbzip2LZMA 等其他算法。

要了解更多信息,Cloudflare 的工程师 提供了更多关于 Brotli 如何与其他算法进行比较的详细信息。他们提供了一个深刻的探索,以一个引人入胜的视角看待 Brotli 改进的压缩可能对实际应用产生的潜在影响。关于 Brotli 当前状态的另一个有价值的看法(或者至少是最近的状态)来自 Sam SaffronDiscourse.org 的联合创始人。他还提供了另一组基准测试,证明了 Brotli 的大小和速度优势,以及关于为什么 Brotli 主要用于 HTTPS 的支持性观点。

随着大多数浏览器都增加了对 Brotli 的支持,我们在 DreamHost 也紧随其后,并于 2016 年 12 月开始在我们的托管 WordPress 服务 DreamPress 上部署 Brotli。由于 DreamPress 使用 nginx 进行 TLS 终止,我们能够使用谷歌构建的 ngx 模块,以便成功构建和部署 Brotli 库。

虽然浏览器对 Brotli 的支持正在迅速增加,但截至今日,仍有一些明显的抵制者。Apple Safari 仍然没有支持 Brotli 的计划,而微软只计划在其 Edge 浏览器上支持,将传统的 Internet Explorer 用户抛在尘土中(这尘土是由更快速的替代方案扬起的)。微软的 IIS 服务器确实有一个免费扩展程序,可以在服务器端添加 Brotli 压缩。

要检查网站是否提供使用 Brotli 压缩的内容,首先请确保您的浏览器请求内容编码扩展 br 以及标头中的响应

(作为一个时代标志的旁注,最初提议的扩展名 "bro" 被拒绝了,因为它在美国英语中使用的术语带有太多的语言包袱;无论如何,将其命名为 br 而不是 "bro" 可以为每个人节省一个字节。)

使用 KeyCDN.com 提供的工具测试站点是否支持 Brotli 可以说是更容易的。

虽然实际上,使用 Brotli 带来的速度优势可能并不总是那么容易被用户察觉,但它确实是真实存在的。与此同时,看到一种新的开源压缩算法被开发出来本身就是一件罕见的事情,这使得它本身就值得赞赏。由于我们在 DreamHost 热爱开源,并且所有条件都恰好吻合,因此我们继续前进并开始提供此选项。而且它有效。

标签
Stefano Maffulli smiling at the camera
Stefano 是开源促进会 (Open Source Initiative) 的执行董事,是一位经验丰富的开源组织领导者,从非营利性倡导团体和行业组织,到跨国商业企业和社区项目。凭借在社区建设方面的良好记录,他还是开源项目的积极贡献者。

13 条评论

但是它的 Weissman 分数是多少?

啊,但是它提供中间输出吗?
;-)

性能如何?如果它实现了 25%-30% 的更高压缩率,但代价是速度慢两倍,那就没什么好处。

与 gzip 相比,brotli 从 0 到 11 的最佳级别是什么才能获得最佳结果

我在帖子中链接的文章有基准测试和更多细节。要点是:速度和带宽的提升很大程度上取决于 brotli 的使用方式。

回复 ,作者:Krishna Pandey (未验证)

为什么本文中的所有链接都有 "?target=_blank"?那应该是什么意思?

嗨,QA,
target="_blank" 指示您的网络浏览器在新标签页或窗口中打开链接。

回复 ,作者:QA (未验证)

很高兴听到已经有广泛实施它的计划。不过,我为 "bro" 扩展名欢呼。 :)

快速测试一下

https://www.google.com

产生

“否定!www.google.com 不支持 Brotli 压缩。”

吃自己的狗粮怎么了?

您的一些链接有一个额外的 ?target="%22_blank%22

好眼力!我刚刚进去处理了。

感谢指出!

回复 ,作者:user00003 (未验证)

讽刺的是。这篇文章(好吧,opensource.com)使用了 gzip 压缩算法。“Content-Encoding:gzip” :)

说到 Brotli,我们不能忘记最近的 Facebook Zstandard,它通常快得多。
https://fbdocs.cn/zstd/

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.