什么是 GZIP 解压缩?
GZIP 是由 RFC 1952 定义的无损压缩文件格式。解压会逆向 DEFLATE 算法(RFC 1951)——它读回 LZ77 引用和 Huffman 编码的符号,从而精确地重建原始字节。
GZIP 解压缩是如何工作的?
你的输入完全在浏览器中通过原生 DecompressionStream('gzip') API 处理。主要步骤如下:
- 工具会将你的输入解析为 Base64 或十六进制(文本输入),或读取你上传的 .gz 文件的原始字节。
- 验证 10 字节的 gzip 头,识别 DEFLATE 负载,并将 8 字节的尾部(CRC32 + 原始长度对 2^32 取模)暂存以供验证。
- 字节通过配置为
gzip格式的DecompressionStream进行处理。 - 浏览器将 DEFLATE 逆向:Huffman 编码解码回符号,LZ77 后向引用被展开为原始字节流。
- 流根据恢复的字节验证 CRC32 和长度尾部,然后在文本表单中以 UTF-8 文本形式输出,或在上传表单中提供可下载的文件。
为什么使用此工具解压缩?
- 查看响应:阅读其他工具会显示为二进制乱码的 GZIP 编码 HTTP 响应体和 CDN 数据。
- 恢复归档:提取 .gz 日志文件、配置转储和 tarball 组件,无需安装额外软件。
- 隐私:解压完全在你的浏览器中进行。输入永远不会发送到我们的服务器。
- 符合标准:接受由
gzip命令行、HTTP 服务器或 Python、Node.js、Go、Java、Rust 等语言标准库产生的任何 RFC 1952 数据流。
GZIP 解压缩的常见应用有哪些?
GZIP 解压广泛出现在 Web 工作和命令行工具中:
- 调试 API:粘贴原始的
Content-Encoding: gzip响应体以查看底层的 JSON 或 HTML。 - 日志取证:打开轮转过的
.log.gz文件以 grep 事件,无需完整的提取流水线。 - 验证备份:在依赖某个 .gz 归档之前,确认另一个工具产生的它可以完整解压。
GZIP 解压缩示例是什么样的?
一个以 H4sI 开头的 200 字节 Base64 字符串是 gzip 头的标志——魔数字节 1f 8b 正好编码为这些字符。粘贴该字符串并按下"解压",会逐字节地完整重现原始文本,包括空白和末尾换行。
此 GZIP 解压器接受任何 RFC 1952 输入,并直接在你的浏览器中产生原始字节。将其与 GZIP 压缩器搭配使用,可以在不离开页面的情况下对文本或文件进行往返处理。