GZIP書庫 (.gz)
IETF 標準Gzip (GZ) は、標準の GNU 圧縮ユーティリティおよびファイル形式であり、Unix オペレーティングシステムやインターネットの HTTP サーバー全体に広く配備され、ファイルや Web アセットの迅速な圧縮を行っています。
TAR を GZ に変換
無料のブラウザ内 TAR から GZ へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してGZファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してGZファイルを識別します:
16進数シグネチャ(オフセット0):
1F 8B 08ASCII表現: ..\x08
標準化: IETF RFC 1952
技術仕様
| コンテナアーキテクチャ | 10バイトヘッダー(マジック値0x1F 0x8B、方式8、フラグ、mtime、OS)に続き、DEFLATEストリームと8バイトフッターを格納 |
| 圧縮 | DEFLATEアルゴリズム(LZ77スライディングウィンドウとHuffman符号化) |
| バイトエンディアン | ヘッダーとフッターの整数はリトルエンディアン |
| 色空間 | 該当なし(アーカイブコンテナ) |
| チャンネルと構造 | 単一ファイルの圧縮バイトストリーム |
| 最大寸法 | 非圧縮サイズは2^32を法として記録(ストリーム長に上限なし) |
| 透過性 | データをビット単位で完全に保持する可逆圧縮 |
| ストリーミングとプログレッシブ | パイプやHTTPネットワークを通じた1回の逐次ストリーミング再生 |
技術比較表:GZと競合製品
| 技術属性 | GZ (現在) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| 解凍速度 | 速い(約 300 MB/s) | 遅い(約 40 MB/s) | 非常に速い(約 400 MB/s) | 超高速(>1.5 GB/s) |
| ウェブで広く利用 | すべてのブラウザとサーバーの 100% | Web ブラウザのサポートなし | すべてのブラウザで HTTPS 経由でサポート | ブラウザとサーバーのサポートが拡大中 |
| マルチファイルパッケージング | TAR コンテナが必要 (.tar.gz) | TAR コンテナが必要 (.tar.bz2) | ラッパーなしのストリームまたはカスタムコンテナ | TAR コンテナが必要 (.tar.zst) |
| チェックサム検証 | 32 ビット CRC (CRC-32) | ブロックごとの 32 ビット CRC | ストリームに組み込みなし | 64 ビット xxHash |
一般的な破損モードと16進数リカバリガイド
抽出エラー:「gzip: stdin: unexpected end of file」。
根本原因: DEFLATE ストリームまたは 8 バイトの CRC32 フッターを切り捨てる、早期のファイル転送終了。
復旧: 「gzip -d --keep broken.gz」または File2File.app Gzip Extractor を使用して、部分的な内容を抽出します。
セキュリティ分析とパーサー攻撃ベクトル
Gzip パーサーは、ユーザー制御のヘッダーと DEFLATE ビットストリームを処理するため、解凍爆弾に対して保護する必要があります。
既知の攻撃ベクター
- 数メガバイトの Gzip データを数百ギガバイトのディスク容量に拡張する解凍爆弾 (zip 爆弾)。
- ヘッダーからオプションの元のファイル名文字列を読み取る際のバッファオーバーフロー。
- 32 ビット CRC チェックの比較中の整数オーバーフロー。
防御的ベストプラクティス: 自動化された取り込みサービスにおいて、厳格な解凍クォータとメモリ上限制限を適用します。
歴史的背景とマイルストーン
主なメリット
- すべての Web クライアントの 100% でサポートされている、インターネット HTTP 圧縮(「Content-Encoding: gzip」)の普遍的なベンチマークです。
- 10 バイトのヘッダー内に、元のファイルの変更タイムスタンプとオプションの元のファイル名が保持されます。
- 解凍時の軽量な CPU フットプリントにより、低電力のモバイルデバイスやルーターでもスムーズに動作します。
技術的な制限とデメリット
- 単一ファイルの圧縮のみ:事前に TAR コンテナにバンドルしないと、複数のファイルやディレクトリを圧縮できません。
- 現代の Web テキストにおいて、Brotli や Zstandard などの最新アルゴリズムよりも圧縮率が低いです。
- フッターの非圧縮サイズ欄は2^32を法とする32ビット値のため、4 GBを超えるファイルではサイズ表示が一周して誤ることがあります。
興味深い技術トリビア
- マジックバイト 0x1F 0x8B が選ばれたのは、歴史的に 0x1F が Unix の「compress」ファイルの最初のバイトであり、0x8B が Gzip を特定していたためです。
- インターネット上の全ウェブサイトの 80% 以上が、ブラウザにウェブページを配信するために Gzip 圧縮を利用しています。
- Jean-loup Gailly が圧縮コードを書き、Mark Adler が解凍(inflate)コードを書きました。両者とも ACM ソフトウェアシステム賞を受賞しています。
よくある技術的な質問
Gzipでフォルダーを圧縮できないのはなぜですか?
Gzipは単一のバイトストリームを圧縮するように設計されています。フォルダーを圧縮するには、Unixシステムではまずフォルダーを1つの.tarファイルにまとめてから、Gzipで圧縮して.tar.gzファイルを作成します。
.gzと.zipの違いは何ですか?
.zipは複数のファイルをディレクトリインデックスとともにパッケージ化するアーカイブ形式です。.gzは単一のファイルのみを圧縮し、Unixシステムでは通常tarと組み合わせて使用されます。
WindowsやMacで.gzファイルを解凍するにはどうすればよいですか?
File2File.appを使用すれば、ソフトウェアを一切インストールすることなく、ウェブブラウザ上で直接.gzファイルを即座に解凍できます。