shfshanyue / Daily-Question

互联网大厂内推及大厂面经整理,并且每天一道面试题推送。每天五分钟,半年大厂中
https://q.shanyue.tech
4.92k stars 510 forks source link

【Q108】gzip 的原理是什么,如何配置 #109

Open shfshanyue opened 4 years ago

shfshanyue commented 4 years ago

一句话: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;

LZ77

Huffman

相关阅读