什么是 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 头

常见用途

  1. HTTP 响应压缩
  2. 日志文件压缩
  3. 备份和归档存储
  4. 软件分发包
  5. 数据库转储压缩

示例

loading...
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 仍然被广泛使用。

相关工具

相关术语

相关文章