布罗特利压缩:GZIP压缩替代方案

自学咖网努力为各位打造免费分享知识与教程网站

速度对任何网站都很重要。我们有许多不同的技术可以帮助我们追求快速加载时间。一种方法是在不影响网站功能的情况下,尽量减少网站使用的底层代码。GZIP压缩是实现这一点的一种方法,但Brotli压缩是另一种引人注目的新兴方法。

这是谷歌开发的一个解决方案,它似乎比GZIP压缩(和替代)提供了许多好处。本文中的细节将准确描述这项技术提供的功能,但Brotli压缩快速高效——它满足了你研究它所需的所有条件。

在本教程中,我们将研究Brotli压缩,并向您展示如何检查您的网站是否使用它,以及如何在需要时启用它。首先,我们将Brotli放在压缩算法空房间,讨论为什么要用它而不是其他解决方案。

网络数据压缩

布罗特利压缩

布罗特利压缩和GZIP压缩

如何检查你的网站是否使用Brotli压缩

如何为您的站点启用Brotli压缩

网络数据压缩

在其最基本的形式中,数据压缩使用网站或应用程序的代码,并最小化文件大小。这允许你在网上移动较轻的文件,并减少加载和渲染网站所需的时间。你会发现,根据你使用的文件类型,有许多压缩数据的方法。

常见的方法是“缩小”。这是一个算法从你的网站代码中删除一些冗余元素的地方。想法是缩进、注释、空单元格等。会增加文件大小,从而增加加载时间。

在大多数情况下,删除这些元素不会影响用户体验(UX)。然而,它确实让必须编译和呈现代码的计算机变得更容易。例如,以这组代码为例:

define( ‘WP_INSTALLING’, true );/** Sets up the WordPress Environment. */require __DIR__ . ‘/wp-load.php’;require __DIR__ . ‘/wp-blog-header.php’;if ( ! is_multisite() ) {wp_redirect( wp_registration_url() );die();}$valid_error_codes = array( ‘already_active’, ‘blog_taken’ );

上面的代码使用了空和回车等元素来方便阅读,但是计算机不需要这些元素来理解核心代码。更何况这几批空单元格和换行符会占用宝贵的空空间,删除这些空空间可以提高性能。

如果您最小化这段代码,它看起来完全不同:

define( ‘WP_INSTALLING’, true ); /** Sets up the WordPress Environment. */ require __DIR__ . ‘/wp-load.php’;require __DIR__ . ‘/wp-blog-header.php’;if ( ! is_multisite() ) {wp_redirect( wp_registration_url() );die();}$valid_error_codes = array( ‘already_active’, ‘blog_taken’ );

但是,这段代码的基本功能还是一样的。

你会发现其他文件类型也有压缩数据的方法。例如,图像通常需要大量压缩来减小其大小,而不会降低图像本身的质量:

自学咖网努力为各位打造免费分享知识与教程网站

优化图像的示例

GZIP压缩是最小化文件包大小的标准方法。tar包,如ZIP或Linux包。但到目前为止,还没有真正的替代品。我们稍后将更多地讨论为什么替代方案应该存在,但首先让我们向您介绍一下GZIP的“竞争对手”。

布罗特利压缩

简而言之,Broti是一种数据压缩算法。然而,如果这就是我们要说的全部,那么就没有理由去调查它。

它提供“无损”压缩,由谷歌在麻省理工学院的许可下开发。该公司通常处于网络推广技术的前沿。因此,Brotli希望采用GZIP的方法并加以改进,为用户和网站提供增强的体验,这并不奇怪。

Brotli压缩使用与GZIP压缩相同的核心基础技术,即:

LZ77算法

和霍夫曼编码解码。

事实上,如果你把这两种技术结合起来,你会得到DEFLATE的格式,作为GZIP和布罗特利压缩的基础。这就是我们在关于GZIP压缩的文章中深入讨论的内容。

简而言之,未压缩文件由LZ77和霍夫曼算法运行,作为将它们压缩成Brotli格式的DEFLATE过程的一部分。从那里,膨胀过程将再次解压缩文件,如果必要的话。

虽然Brotli目前是GZIP的主要竞争对手,但还有其他类似的技术也使用DEFLATE。下一节,我们将讨论是什么让Brotli脱颖而出。

布罗特利压缩和GZIP压缩

如前所述,布罗特利和GZIP都使用DEFLATE方法来压缩(和解压缩)数据。这可能会让很多人感到困惑,因为仅凭这一点并不能保证转化。

然而,谷歌正在提供基于DEFLATE的增强技术,并将数据压缩到更高、更快的标准。

Brotli如何使用字典来提高数据压缩?

数据压缩格式的一个技术方面是Brotli压缩使用数据字典中现有的已知语言和文本来使用其算法的方式。

开发人员将使用键值对字典来存储数据,因为它高效、灵活且可扩展。下面是PHP字典(称为“数组”)的样子:

$cats = get_categories(array(‘taxonomy’ => ‘link_category’,’hierarchical’ => 0,’include’ => $link_cat,));

虽然GZIP不用字典,但布罗特利用两本。

布罗特利静态词典

第一个是通用代码术语的静态(即预定义)字典,用作HTML、CSS和JavaScript文本的参考。

在六种不同的语言中有超过13000个单词,Brotli将使用这些作为代码中点的参考。这不是一个精确的类比,但它类似于WordPress钩子引用更大的代码套件的方式。

因此,编码器不必逐字节过滤代码。相反,它可以作用于引用,从字典中提取定义,然后继续下一个。

你还会在字典和压缩代码中找到你不常见到的真实世界的短语。这有助于一些标签(比如and type=”text/javascript “参数)被压缩,给你带来更大的好处。

词典中还有一些“转换”:部分、不完整等类型的短语,加上新的前缀、后缀或大写字母,成为一个全新的单词——比如“Work”转换成“Working”,或者“html”转换成“HTML”。

布罗特利动态词典

字典从源代码中动态解析内容和代码,这对于较小的设备来说很好,但是对于较大的文件就不太好了。它也被称为“滑动窗口”,大小可达16MB。这是压缩算法“缓存”一些最新数据以引用它的地方。它是超动态的,因为它是不断变化的。

如果将此与大约32KB的GZIP滑动窗口进行比较,您会发现实时解析和压缩的范围非常大。其实最典型的做法是使用Brotli滑动窗口,大约4MB,和竞争算法相比还是巨大的。

布罗特利压缩和GZIP压缩:性能和支持

说到纯用户数量,GZIP压缩仍然是第一。不过Brotli压缩每天用的比较多。这部分是由于主要浏览器采取了更广泛的采用措施;基于Chromium的浏览器的兴起也有所帮助。

我用…网站记录浏览器采用的技术,提供各种历史记录。该网站指出,超过95%的浏览器在当前编写期间使用Brotli压缩,包括所有主要版本。

自学咖网努力为各位打造免费分享知识与教程网站

我可以使用…检查Brotli的兼容性。

在我们的GZIP压缩文章中,我们注意到一个基准测试。与竞争算法相比,Brotli具有更好的压缩比,但在压缩和解压缩时间上落后:

自学咖网努力为各位打造免费分享知识与教程网站

不同算法的压缩性能比较(来源:OpenCPU)。

然而,壁球基准显示了一个不同的故事——一个更微妙的故事。真正的收获是,总的来说,Brotli比GZIP更灵活,其压缩比一般也更高。

以下是壁球基准测试结果的总结:

Brotli在每个压缩级别都有更好的压缩比(即它生成更小的压缩文件)。

虽然在大多数情况下,GZIP在速度上确实胜过了布罗特利,但是你的压缩程度会影响你将看到的结果。

保罗·卡尔瓦诺的分解提供了更多的细节,但关键点是Brotli需要更多的CPU能力来提供更大的文件压缩系数。这显示在最高和最低压缩级别。Cloudflare的基准测试支持这一点:文件大小更小,压缩速度数字更接近。

另外,请考虑一些测试工具,比如Pingdom和一些还不支持Brotli的内容交付网络(CDN)。这可能会扭曲其他人收集的关于Brotli如何工作的数据。如果您运行测试,您可能会看到一个“假阴性”:较高的页面速度数字忽略了您使用的文件压缩。

Brotli压缩的优势

到目前为止,有很多关于Brotli压缩的信息。然而,我们可以总结一下为什么你应该选择布罗特利而不是GZIP:

它采用了与GZIP相同的技术,并用现代方法进行了改进。

Brotli基于字典的分析意味着它可以将更多的文件压缩到更深的层次。

虽然Brotli比GZIP需要更多的计算能力,但结果意味着文件更小。

在大多数Web主机使用的压缩级别上——中等压缩级别,如4级或5级——brot Li比GZIP表现得更好,而且毫不费力。

你会发现Brotli在浏览器中几乎得到了普遍的支持,如果不是你所习惯的一些基准工具的话。

Brotli免费使用,开源。如果使用Broti兼容的CDN,比如Cloudflare,这是一个优势。

值得注意的是,Cloudflare在其所有服务器上都使用了Brotli压缩。事实上,它使用了Brotli的修改和优化版本,在速度和文件交付方面给您带来了更多好处。

如何检查你的网站是否使用Brotli压缩

因为Brotli压缩还不是标准的(虽然它已经快实现了),你可能想知道你的网站是否使用它。有几种方法可以解决这个问题。

1.使用在线工具

检查你的网站是否使用Brotli压缩的最简单的方法是通过在线工具。虽然有一些可供选择,但您会想要一些快速且易于使用的东西,并且它还会为您提供许多关于您的设置的信息。

速度的礼物是我们检查Brotli压缩的选择。

自学咖网努力为各位打造免费分享知识与教程网站

速度的礼物网站

它将决定您的网站是否使用GZIP,Brotli或根本没有压缩,并提供一些其他指标来帮助您决定下一步该做什么。这些指标提供了重要的见解,因为你不应该只考虑你的网站的服务器是否使用正确的压缩“风格”。

组成一个网站的元素有很多,甚至是第三方库和依赖项。你可以选择使用CDN为他们提供服务。如果是这样,这也需要Brotli压缩以获得最佳性能。

如果您使用Gift Of Speed来测试单个资产,那么您可以检查服务器值来查看它是如何服务的。

自学咖网努力为各位打造免费分享知识与教程网站

Cloudflare资产的速度礼物结果页面

所以各个站点也会在全链和服务器架构上使用Brotli压缩。

2.使用浏览器检查开发工具。

大多数开发人员都知道浏览器提供了一些优秀的工具来帮助您进行各种与Web相关的调查和故障排除。您可以快速检查您的网站(或特定资产)是否使用Brotli压缩。

对于所有主流浏览器如Brave、Edge、Firefox或Chrome,可以进入网络>所有屏幕。

首先,你不会看到任何与内容标题相关的东西——你需要从左边选择资产或者请求。如果您继续查看并向下滚动列表,您将看到一个面板打开,默认为标题信息。

在这里,向下滚动输出,直到看到content-encoding: br行:

自学咖网努力为各位打造免费分享知识与教程网站

Brave的开发工具显示该站点启用了Brotili压缩。

简而言之:如果你看到content-encoding: br,这表明Brotli在这个网站上是活跃的。

如何为您的站点启用Brotli压缩

在最后几节中,我们将向您展示一些不同的方法来为您的站点启用Brotli压缩。

1.使用WordPress插件

几乎每个WordPress网站都会使用至少一个插件——通常这更多取决于网站所需的功能。缓存是插件的一个用例,周围有很多。然而,并不是所有的都可以让您启用Brotli压缩,所以您需要明智地选择,并准备好切换您的首选解决方案。

在对网站进行任何更改之前,请记住做一个完整的备份,以备以后需要恢复时使用。对于这种方法,我们将使用W3总缓存,因为很容易找到正确的设置。

你需要进入WordPress的性能>浏览器缓存:

自学咖网努力为各位打造免费分享知识与教程网站

W3总缓存”浏览器缓存:链接

该屏幕显示两种设置。您想要选择启用HTTP (brotli)压缩:

自学咖网努力为各位打造免费分享知识与教程网站

在W3总缓存中启用Brotli压缩

在这些情况下,您需要采取另一种方法。

2.在服务器上启用Brotli

Nginx在选择服务器类型的时候和Apache打了很久,前者胜出。无论如何,两种服务器类型都可以启用Brotli压缩,并且每种都有不同的方法。

在研究手动方法之前,您应该了解一些先决条件:

您需要知道如何访问特定服务器的配置文件。

命令行知识将是有益的,尤其是当涉及到Apache服务器时。要运行任何命令,您需要拥有sudo权限的root用户。

你可能需要一个文本编辑器,但是你应该可以很好地完成如此快速的修改。

在某些情况下,您需要使用您的登录凭证作为服务器本身的安全Shell (SSH)用户。你可以在主机控制面板里找到这些,或者联系支持人员询问。

如果您对手动方法有任何疑问,我们建议您考虑另一种选择,或者联系您的房东寻求帮助。反正我们先从Nginx开始,依次简单概述一下各个服务器的流程。

Nginx

要在Nginx服务器上启用Brotli压缩,首先需要找到nginx.conf文件。它将是几个地点之一:

/usr/local/nginx/conf

/etc/nginx

/usr/local/etc/nginx

打开文件后,在底部添加以下内容:

brotli on;brotli_static on;brotli_comp_level 9; # You can change this from 1–11. 4–9 offers good performance balance.brotli_types text/plain text/css application/javascript application/json image/svg+xml application/xml+rss;

该套件将打开Brotli并使用它来提供静态文件。Brotli_comp_level设置是可以根据您的使用情况和需求进行更改的设置。数字越大,压缩平衡越好,站点性能越低。

街头流氓

由于Apache在配置上非常灵活,所以您可以轻松地启用Brotli压缩。

为此,请遵循以下步骤:

o作为根用户,sudo使用命令提示符或终端应用程序登录到您的服务器。

运行a2enmod brotli命令打开压缩。

在Apache VirtualHost或您的服务器配置中,添加addOutputFilterByType Brotli _ Compress Text/html Text/Plain Text/XmlText/CSS Text/Javascript Application/Javascript行,以设置您想要压缩的正确文件类型。

虽然Apache不支持静态压缩,但是您可以通过使用Brotli压缩质量级别-数字行来更改您提供的Brotli压缩级别。但是,您需要将“级别编号”占位符替换为1到11之间的数字。

3.使用受支持的Web主机

为您的站点启用Brotli压缩的最直接的方法是确保您的主机默认这样做。

您需要检查您选择的主机是否提供Brotli压缩,以及您需要将其配置到什么级别。为了运行最高性能、最稳定和最安全的网站,良好的托管是必不可少的。

总结

数据压缩是开发和使用现代网络不可缺少的一部分。由于你将使用丰富而复杂的文件类型来拼凑一个网站,文件大小可能会飙升。所有这些都需要某种形式的压缩。

迄今为止,典型的方法是GZIP,但现在有一个新的孩子。

Brotli压缩基于与GZIP相同的技术基础,但包括一些性能增强优势。正如我们所讨论的,它使用上下文映射以及动态填充的字典来更快地处理压缩请求。这比GZIP所能提供的要大得多,而且它也允许移动用户从压缩中受益。

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 布罗特利压缩:GZIP压缩替代方案