1、浏览器常见的压缩协议
浏览器中最常见的压缩算法有:
- deflate:是一种过时的压缩算法,是 huffman 编码的一种加强。
- gzip:是目前大多数浏览器都支持的一种压缩算法,是对 deflate 的改进。
- sdch:谷歌开发的一种压缩算法,一种全新的压缩思路。deflate 与 gzip 的的压缩思想是,修改传输数据的编码格式以达到减少体量的目的,其最终传输的数据并没有减少。而sdch 压缩算法的思想是,让冗余的数据仅出现一次,其最终传输的数据减少了。
- Zopfli:谷歌开发的一种压缩算法,Deflate 压缩算法的改进。比标准的gzip -9要小 3%-8%,但压缩用时是 gzip -9 的 80 多倍。
- br:即 Brotli,谷歌开发的一种压缩算法,是一种全新的数据格式。与 Zopfli 相比,压缩率能够降低 20%-26%。Brotli -1 有着与 Gzip -9 相近的压缩比和更快的压缩解压速度。
2、常用设置
1)gzip on
开启 gzip 压缩,默认为 off。
2)gzip_min_length 5k;
指定最小启用压缩的文件大小。
3) gzip_comp_level 4;
指定压缩级别,取值为 1-9,数字越大,压缩比越高,但压缩所用时间会越长。默认为1,建议使用 4。
4) gzip_buffers 4 16k;
“4”表示的是缓存颗粒数量,而“16k”表示的是缓存颗粒大小。
5) gzip_vary on;
开启动态压缩。默认值 off。
6) gzip_types mimeType;
通过 MIME 类型来指定要压缩的文件类型。默认值 text/html。对于nginx所支持的mime类型,可以通过与nginx.conf同目录的mime.type文件查看。