高级前端
http
【Q108】gzip 的原理是什么,如何配置

gzip 的原理是什么,如何配置

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 109 (opens in a new tab)

Author 回答者: shfshanyue (opens in a new tab)

一句话:gzip 的核心是 Deflate,而它使用了 LZ77 算法与 Huffman 编码来压缩文件,重复度越高的文件可压缩的空间就越大。

因此 gzip 用于 HTTP 文件传输中,比如 JS、CSS 等,但一般不会压缩图片。在 HTTP Response 报文中,用 Content-Encoding 指明使用 gzip 压缩,而以下响应头在大部分生产环境的响应报文中都可以看到!比如你现在立刻马上可以打开我的网站 (opens in a new tab)或者百度 (opens in a new tab)试一试。

# Request Header
Accept-Encoding: gzip, deflate, br
 
# Reponse Header
Content-Encoding: gzip

gzip 一般在反向代理那一层,如 nginx 进行处理,直接使用 C 语言编写,具有更好的性能。

nginx 开启 gzip: 配置可参考 gzip module (opens in a new tab)

gzip on;

LZ77

Huffman

相关阅读