作者回复: 你好Geek_007,这3个问题我的看法如下:
1、压缩算法的原理都是基于香农的信息论,将高频出现的信息用更少的比特编码。虽然原理是一致的,但实现上却有很大的差别,比如Huffman通过建立Huffman树来生成编码,而LZ77却是通过滑动窗口,这造成压缩比、压缩速度都很不相同。
2、比较它们的优劣,主要看3个指标:
a. 压缩比,比如brotli的压缩比好于ZSTD。
b. 压缩与解压的速度,比如ZSTD比gzip速度快
c. 浏览器等中间件的支持程度,现在几乎所有浏览器都支持brotli(即br),但ZSTD少有支持
3、没有最适合算法,对具体的场景,比较方法参见第2点
作者回复: 没错,有些消息推送是用chunk实现的
作者回复: 在实践中学习,赞!
作者回复: 是的,就是为了转换可见字符,这样更方便交换
作者回复: 关键还是看浏览器对格式的支持程度。目前,IE、Firefox、Chrome等主流浏览器都支持webp,但TPG就不好说了,除非产品用户主要在使用 QQ浏览器^_^