压缩原理 ######## * 主动协商机制:HTTP 客户端发送 Accept-Encoding 首部(其中包含它所支持的压缩算法,以及各自的优先级),服务器则从中选择一种,使用该算法对响应的消息主体进行压缩,并且发送 Content-Encoding 首部来告知 HTTP 客户端它选择了哪一种算法 .. figure:: https://img.zhaoweiguo.com/uPic/2023/11/DdOgqk.png HTTP 压缩协商流程 Brotli 压缩 =========== * Brotli 是 Google 推出的开源无损压缩算法,通过变种的 LZ77 算法、Huffman 编码以及二阶文本建模等方式进行数据压缩。Brotli 内部有一个预定义的字典,该字典包含超过 13000 个常用单词、短语和其他子字符串,在这种预定义字典下,一个词会作为一个整体被匹配,这种方式可以大大提升较小文件的压缩密度。 * 使用 Brotli 时,服务端和客户端都需要额外安装软件支持,服务端安装后可以和 gzip 一同开启,客户端根据需要选择合适的压缩算法。 .. figure:: https://img.zhaoweiguo.com/uPic/2023/11/pMiEwC.png Brotli 压缩效果对比:Brotli 侧重于 HTTP 应用类服务内容的压缩,压缩率比常使用的 Gzip 高 17~30%