Brotli 是一种新型开源压缩算法,旨在实现更快速的互联网,让用户受益。
现代网页通常由几十兆字节的 HTML、CSS 和 JavaScript 组成,这还不包括图像、视频或其他大型文件内容,所有这些都导致下载量巨大。正是由于这些负载,页面才以压缩格式传输;它们显著减少了网站访问者请求网页到页面完全加载并在屏幕上准备就绪之间所需的时间。
虽然 Brotli 算法在 2015 年 9 月由 Google 宣布,但直到最近大多数 Web 浏览器才采用它。Apache 和 nginx HTTP 服务器现在都提供 Brotli 压缩作为一种选项。除了 Google 之外,其他商业供应商(例如 Cloudflare 和 DreamHost)也已开始部署对 Brotli 的支持。
与良好的旧式 gzip 文件压缩和解压缩算法相比,Brotli 的开源算法可以将数据额外缩小 20% 到 25%。Brotli 之所以能实现这种卓越的性能,是因为它使用了一个字典,其中包含英语、西班牙语、中文、印地语、俄语和阿拉伯语中最常用的单词和音节,以及机器可读语言(特别是 HTML 和 JavaScript)中常用的短语。这使得 Brotli 在压缩和解压缩方面比 gzip、bzip2、LZMA 等其他算法具有明显的优势。
要了解更多信息,Cloudflare 的工程师 提供了关于 Brotli 如何与其他算法进行比较的更多详细信息。他们进行了一次富有洞察力的探索,对 Brotli 改进的压缩可能对实际应用产生的潜在影响提出了引人入胜的观点。关于 Brotli 当前状态(或至少不久之前的状态)的另一个有价值的看法来自 Sam Saffron,他是 Discourse.org 的联合创始人。他提供了另一组基准测试指标,证明了 Brotli 在大小和速度方面的节省,以及支持 Brotli 主要用于 HTTPS 的观点。
随着大多数浏览器都增加了对 Brotli 的支持,我们在 DreamHost 也紧随其后,并于 2016 年 12 月开始在我们的托管 WordPress 服务 DreamPress 上部署 Brotli。由于 DreamPress 使用 nginx 进行 TLS 终止,我们能够使用 Google 构建的 ngx 模块来成功构建和部署 Brotli 库。
虽然浏览器对 Brotli 的支持正在迅速增长,但截至今日,仍有一些值得注意的抵制者。Apple Safari 仍然没有支持 Brotli 的计划,而 Microsoft 仅计划在其 Edge 浏览器上支持,将传统的 Internet Explorer 用户远远抛在后面(被更快速的替代方案扬起的尘土淹没)。Microsoft 的 IIS 服务器确实有一个免费扩展程序,可以在服务器端添加 Brotli 压缩。
要检查网站是否提供使用 Brotli 压缩的内容,首先请确保您的浏览器要求内容编码扩展 br 以及标头中的响应
(作为时代标志的旁注,最初提议的扩展名 “bro”被拒绝了,因为它在美国英语中的使用方式带有太多的语言包袱;无论如何,将其命名为 br 而不是 “bro” 为每个人节省了一个字节。)
使用 KeyCDN.com 提供的工具测试站点是否支持 Brotli 可能更容易。
虽然实际上,使用 Brotli 带来的速度优势可能并不总是那么容易被用户察觉,但它确实存在。与此同时,看到一种新的开源压缩算法被开发出来本身就是一件罕见的事情,这使得它本身就值得赞赏。由于我们在 DreamHost 热爱开源,并且所有条件都恰好吻合,因此我们继续前进并开始提供此选项。而且它有效。
13 条评论