Brotli转GZIP转换器
将 Brotli 文件转换为 GZIP 格式,用极少量的压缩效率损失换取通用的软件兼容性。
格式比较与技术规格
| 规格 | BROTLI | GZIP |
|---|---|---|
| MIME 类型 | application/ | application/ |
| 类型 | 上下文建模流压缩 | DEFLATE 流容器 |
| 压缩 | Brotli LZ77 + 第 2 阶上下文建模 | DEFLATE (RFC 1951) |
| 标准规范 | IETF RFC 7932 | IETF RFC 1952 |
| 魔数文件头 (Magic Bytes) | Brotli byte stream headers (WBITS / sliding dictionary) | 1F 8B (gzip ID1/ID2) |
格式概述与应用
一些较旧的软件和系统支持 GZIP,但不支持 Brotli。如果接收工具要求 GZIP,将 Brotli 流转换为 GZIP 可能有帮助。解压并重新压缩会改变压缩后的字节,但应保留解压后的数据;兼容性取决于目标应用。
技术规格与编解码器解析
Brotli 流使用 application/x-brotli,依赖结合二阶上下文建模和静态前缀码的高级 LZ77 算法。相比之下,GZIP 文件使用 application/gzip,并封装由 DEFLATE 算法压缩的数据;该算法将 LZ77 与 RFC 1951 中定义的哈夫曼编码结合使用。魔数签名决定软件如何识别这些流。GZIP 文件始终以两字节标头序列 0x1F 0x8B 开头。Brotli 流不像 GZIP 那样使用固定的全局魔数标头,而是依赖可变长度的位流标头,其中前几位定义窗口大小和流长度。
操作系统与浏览器兼容性
GZIP 在包括 Windows、macOS、Linux、iOS 和 Android 在内的大多数现代操作系统上得到广泛支持。tar、gunzip 和 7-Zip 等内置系统实用程序可原生处理 GZIP。Brotli 在现代网页浏览器和现代 Linux 内核中得到良好支持,但旧版命令行工具和编程语言运行时通常缺少原始 Brotli 流的原生解码库,因此 GZIP 是广泛支持的文件传输中更稳妥的选择。
实用信息
在批量转换文件之前,请务必确认目标端是否支持 RFC 1951,因为某些嵌入式微控制器仅包含最少的 GZIP 解析例程。
常见问题
如何将 Brotli 流转换为 GZIP 流而不损失质量?
这两种格式都使用无损压缩算法。这意味着文件内容可以解压缩回确切的原始字节序列,不会丢失数据或降低质量。
Brotli 流和 GZIP 流有什么区别?
许多桌面和服务器软件支持 GZIP,但具体设备能否使用取决于其应用。