Brotli 是一种新的开源压缩算法,旨在让互联网为用户提供更快的速度。
现代网页通常由数十兆字节的 HTML、CSS 和 JavaScript 组成,这还不包括图像、视频或其他大型文件内容,所有这些都会导致大量下载。 由于这些负载,页面以压缩格式传输; 它们显着减少了网站访问者请求网页到该页面完全加载并在屏幕上准备好使用之间所需的时间。
虽然 Brotli 算法是 Google 于 2015 年 9 月宣布的,但直到最近大多数 Web 浏览器才采用它。 HTTP 服务器 Apache 和 nginx 现在提供 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 条评论