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