什麼是 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 解壓縮廣泛出現在網頁工作和命令列工具中:
- 除錯 API:貼上原始的
Content-Encoding: gzip回應主體以查看底層的 JSON 或 HTML。 - 日誌鑑識:開啟輪替過的
.log.gz檔案以 grep 事件,無需完整的擷取流程。 - 驗證備份:在依賴某個 .gz 壓縮檔之前,確認另一個工具產生的它可以完整解壓縮。
GZIP 解壓縮範例是什麼樣子?
一個以 H4sI 開頭的 200 位元組 Base64 字串是 gzip 標頭的標誌——魔數位元組 1f 8b 正好編碼為這些字元。貼上該字串並按下「解壓縮」,會逐位元組地完整重現原始文字,包括空白和結尾換行。
此 GZIP 解壓縮器接受任何 RFC 1952 輸入,並直接在你的瀏覽器中產生原始位元組。將其與 GZIP 壓縮器搭配使用,可以在不離開頁面的情況下對文字或檔案進行來回處理。