提升网站加载速度一直是一个长期讨论的话题。本文将首先从Gzip和Brotli两种压缩算法入手,探讨它们各自的压缩特点,以及Gzip与Brotli之间的比较,以确定哪种压缩算法具有更好的效果。
Gzip 压缩算法
Gzip压缩算法使用了基于DEFLATE的技术,结合了LZ77和霍夫曼编码的方法。最初,该算法用于UNIX系统中的文件压缩。在HTTP协议中,采用Gzip编码可以有效改善Web应用程序的性能。这要求Web服务器和客户端(浏览器)必须同时支持Gzip。目前,主流的浏览器,如IE6、IE7、IE8、IE9、FireFox、Google Chrome和Opera,都已经开始支持Gzip压缩。这说明Gzip的使用已经成为互联网发展的必然趋势。
作为互联网上广泛应用的数据压缩格式,Gzip可以将一般纯文本内容压缩到原始大小的40%,从而大大减少了网站文件中重复代码和空白的数量。此外,Gzip还提供了9个压缩级别,用户可以根据需要微调压缩量和压缩时间。
在提高Web应用程序性能方面,Gzip一直是最受欢迎的选择。然而,直到Brotli这种新的压缩算法出现,Gzip才迎来了最大的竞争对手。
Brotli 压缩算法
Brotli压缩算法是由Google于2015年9月推出的一种压缩算法。Google认为互联网用户的时间是宝贵的,不应该浪费在漫长的网页加载上。因此,与其他压缩算法相比,Brotli具有更高的压缩效率。它采用了变种的LZ77算法、Huffman编码和二阶文本建模等技术进行数据压缩。
根据Google发布的研究报告,Brotli压缩算法具有以下三个典型特点:
1. 对于常见的Web资源内容,Brotli的性能比Gzip提高了17-25%;
2. 在Brotli压缩级别为1时,其压缩率甚至高于Gzip的最高压缩级别9;
3. 在处理各种HTML文档时,Brotli仍然能够提供非常高的压缩率。
凭借卓越的压缩性能,Brotli自推出以来迅速占据了压缩市场。从下图可以看出,除了IE和Opera Mini之外,几乎所有主流浏览器都已经支持Brotli算法。
Brotli是否优于Gzip?
从研究数据来看,Brotli在与Gzip的比较中取得了显著的优势。与Gzip相比,Brotli提供了11个压缩级别,而Gzip只有9个。此外,Brotli还使用了一个预定义的120千字节字典,其中包含超过13000个常用单词、短语和其他子字符串。这些因素有效提高了Brotli的压缩率。根据Certsimple的研究,使用Brotli压缩的JavaScript文件比Gzip小了14%,HTML文件比Gzip小了21%,CSS文件比Gzip小了17%。
综合来看,无论从哪个方面考虑,Brotli都明显优于Gzip,二者并没有可比性。因此,我们无需担心选择左边或右边的问题。
然而,虽然Brotli在压缩效果方面具有绝对优势,但这些优势是以其他代价为代价的。随着压缩级别的提高,Brotli的压缩操作所需的时间也会增加。换言之,Brotli需要更多的计算能力,而计算能力的需求增加通常意味着设备和软件设施的成本增加。此外,Brotli要求浏览器必须支持与HTTPS一起使用,这也是其在浏览器支持方面较Gzip少的原因。毕竟,Gzip既支持HTTP又支持HTTPS。
网站运营者面临着一个两难的抉择:一方面,选择Brotli能够获得优异的压缩效果,但可能会因为浏览器不支持而导致用户无法访问网站;另一方面,选择Gzip则可以获得浏览器支持,但压缩效果稍逊,用户加载网页的时间稍长。
聪明的人可能会说:“并不是所有用户都能够使用HTTPS,但是是否可以进行功能判断呢?难道压缩算法就不能自动进行这种判断吗?让支持Brotli的用户使用Brotli,不能支持的用户使用Gzip。”这种技术已经在Cloudflare、腾讯云CDN、又拍云CDN等国内外各大服务商得到支持。
1 修改版本安卓及电脑软件,加群提示为修改者自留,非本站信息,注意鉴别;
2 本网站部分资源来源于网络,仅供大家学习与参考,请于下载后24小时内删除;
3 若作商业用途,请联系原作者授权,若本站侵犯了您的权益请联系站长进行删除处理;
4 如果您喜欢该内容,请支持正版,购买注册,得到更好的正版服务;
暂无评论内容