gzip 的原理是什么,如何配置
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 109
Author 回答者: shfshanyue
一句话:gzip
的核心是 Deflate
,而它使用了 LZ77
算法与 Huffman
编码来压缩文件,重复度越高的文件可压缩的空间就越大。
因此 gzip
用于 HTTP 文件传输中,比如 JS、CSS 等,但一般不会压缩图片。在 HTTP Response 报文中,用 Content-Encoding
指明使用 gzip 压缩,而以下响应头在大部分生产环境的响应报文中都可以看到!比如你现在立刻马上可以打开我的网站或者百度试一试。
# Request Header
Accept-Encoding: gzip, deflate, br
# Reponse Header
Content-Encoding: gzip
gzip
一般在反向代理那一层,如 nginx
进行处理,直接使用 C 语言编写,具有更好的性能。
在 nginx
开启 gzip
: 配置可参考 gzip module
gzip on;