Deflate转GZIP转换器

将原始 DEFLATE 转换为 GZIP 流,将压缩负载包装在带有元数据标头的标准容器中,以便操作系统和网络工具能够正确读取它。

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V

等待文件时,可以玩一玩 Code Rain

零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

格式比较与技术规格

规格DEFLATEGZIP
MIME 类型application/zlibapplication/gzip
类型原始 DEFLATE 流DEFLATE 流容器
压缩LZ77 + Huffman 编码DEFLATE (RFC 1951)
标准规范IETF RFC 1950 / RFC 1951IETF RFC 1952
魔数文件头 (Magic Bytes)78 01 / 78 9C / 78 DA (zlib header bytes)1F 8B (gzip ID1/ID2)

格式概述与应用

原始 DEFLATE 数据流包含没有文件标头或尾随校验和的压缩字节。网页浏览器和网络工具经常难以处理这些裸流,因为它们缺少诸如原始文件名、修改时间戳或操作系统标识符之类的元数据。将这些原始数据包装到 GZIP 容器中可以解决这些兼容性问题。 开发人员在 HTTP 压缩、PNG 图像块和 ZIP 档案等网络协议中遇到原始 DEFLATE 流。当这些流需要保存为用于命令行工具或标准网页下载的独立文件时,工程师会将其转换为 GZIP 格式。这确保了解压缩实用程序可以立即识别文件类型并提取内容而不会抛出错误。

技术规格与编解码器解析

原始 DEFLATE 是一种 RFC 1951 位流,使用 LZ77 匹配和哈夫曼编码,不带封装标头,也没有固定签名。MIME 类型 application/zlib 描述的是 RFC 1950 中的 zlib 封装 DEFLATE 流,而非原始 DEFLATE。GZIP(application/gzip)会将 DEFLATE 数据封装在标头中,标头以字节 1F 8B 开头;尾部则包含 CRC32 校验和以及按 2^32 取模的未压缩大小。

操作系统与浏览器兼容性

GZIP 流与 Linux、macOS 和 Windows 等现代操作系统广泛兼容。gzip、gunzip 和 7-Zip 等命令行工具可原生读取 GZIP 文件。浏览器接收服务器的 HTTP 响应时会自动处理 GZIP 解压缩,而原始 DEFLATE 通常需要在 JavaScript 环境或 WebAssembly 模块中编写自定义解析逻辑。

实用信息

始终验证您的解压工具是否正确读取了 GZIP 尾部,因为损坏的尾部 CRC32 校验和将导致提取工具中止,即使底层 DEFLATE 有效负载完好无损。

常见问题

如何将原始 DEFLATE 转换为 GZIP 流而不损失质量?

这两种格式都使用基于完全相同的 DEFLATE 算法的无损压缩。在它们之间进行转换只需在现有的压缩字节周围添加容器标头和校验和,这意味着在包装过程中不会发生数据丢失。

原始 DEFLATE 和 GZIP 流有什么区别?

原始 DEFLATE 仅包含压缩负载,没有任何识别标头或页脚。GZIP 流是一个标准化的文件容器,它向原始 DEFLATE 数据添加了 10 字节的标头和 8 字节的尾随校验和,用于元数据跟踪和错误检测。