什么是 Gzip?
Gzip 是一种文件压缩格式和软件应用程序,使用 DEFLATE 算法来减小文件大小,广泛用于压缩网页内容和减少 HTTP 传输中的带宽消耗。
快速了解
| 全称 | GNU Zip 压缩 |
|---|---|
| 创建时间 | 2026-02-01 |
| 规范文档 | 官方规范 |
工作原理
Gzip 在其 DEFLATE 压缩方法中结合了 LZ77 算法和霍夫曼编码,以实现高效的无损数据压缩。最初由 Jean-loup Gailly 和 Mark Adler 开发,作为 Unix compress 工具的免费替代品,Gzip 已成为 HTTP 压缩的事实标准。Web 服务器可以在将响应发送到浏览器之前使用 Gzip 压缩,显著减少传输时间。该格式添加了一个小的头部,包含原始文件名和修改时间等元数据。文本内容的典型压缩比为 70-90%,使其成为网页性能优化的必备工具。
主要特点
- 使用 DEFLATE 算法(LZ77 + 霍夫曼编码)
- 无损压缩精确保留原始数据
- 文件扩展名:.gz
- 魔数:1f 8b(十六进制)
- 压缩级别 1-9(速度与压缩比的权衡)
- 单文件压缩(归档使用 tar)
- HTTP Content-Encoding: gzip 头
常见用途
- HTTP 响应压缩
- 日志文件压缩
- 备份和归档存储
- 软件分发包
- 数据库转储压缩
示例
Loading code...常见问题
Gzip 和 Zip 有什么区别?
Gzip 使用 DEFLATE 算法压缩单个文件,而 ZIP 是一种归档格式,可以将多个文件和目录压缩到一个归档文件中。ZIP 也使用 DEFLATE,但包含文件组织等附加功能。对于多个文件,gzip 通常与 tar 结合使用(创建 .tar.gz 文件)。
HTTP gzip 压缩是如何工作的?
当浏览器发送带有 'Accept-Encoding: gzip' 头的请求时,服务器可以在发送前使用 gzip 压缩响应。服务器添加 'Content-Encoding: gzip' 头来指示压缩。浏览器会自动解压内容。这可以将文本内容的带宽使用量减少 70-90%。
Gzip 应该使用什么压缩级别?
Gzip 提供 1-9 级压缩,其中 1 级最快但压缩率最低,9 级最慢但压缩率最高。6 级是默认值,提供良好的平衡。对于 Web 服务器,建议使用 4-6 级,因为更高级别收益递减,同时显著增加 CPU 使用率。
Gzip 压缩是无损的吗?
是的,gzip 是无损压缩算法,意味着原始数据可以从压缩文件中完美重建。这使其适用于文本文件、源代码和任何需要精确保存的数据。对于图像和媒体,JPEG 等有损格式可能更合适。
Gzip 和 Brotli 有什么区别?
Brotli 是 Google 开发的较新压缩算法,对于 Web 内容通常能实现比 gzip 高 15-25% 的压缩率。但是,brotli 压缩速度较慢,更适合静态内容。由于通用支持和更快的压缩速度,gzip 仍然被广泛使用。