压缩算法
压缩算法常分为有损压缩和无损压缩,有损压缩常用的有 PNG,JPEG 等等,无损压缩常用的有 霍夫曼编码,ZIP 等等
Web 常用的压缩算法
GZIP
目前 Web 中,兼容性最好的压缩算法,结合了 LZ77 算法和霍夫曼编码,LZ77 寻找文件的重复数据,并使用之前出现过的数据的位置和长度来标识,霍夫曼编码将频繁的数据分配更短的字符,不频繁的分配较长的字符
特点
- 压缩率良好,对文本压缩率较高,但对于 PNG,JPEG 效果较低
- 压缩和解压速度较快
- 广泛支持,兼容性极好
Brotli
Brotli 是 Google 推出的新压缩算法,在 LZ77 和霍夫曼的基础上,增加了二阶上下文建模 (Context Modeling) 和一个大型静态字典
- 静态字典:包含了 HTML 和 Javascript 常用的词汇,可以直接应用词典的条目进行压缩
- 上下文建模:根据当前的上下文来选择更有的编码
特点
- 压缩率较高
- 压缩速度相较于 GZIP 慢,解压速度较快
- 现代浏览器支持不如 GZIP
ZStandard
ZStandard 是 Facebook 推出的新压缩算,在 LZ4(LZ77 变体) 结合熵编码
特点
- 压缩率极佳
- 压缩和解压速度极快
- 现代浏览器支持一般