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-byte header (magic 0x1F 0x8B, method 8, flags, mtime, OS) followed by DEFLATE stream and 8-byte footer |
| 圧縮 | DEFLATE algorithm (LZ77 sliding window + Huffman coding) |
| バイトエンディアン | Little-Endian header and footer integers |
| 色空間 | N/A (Archive Container) |
| チャンネルと構造 | Single-file compressed byte stream |
| 最大寸法 | Uncompressed size recorded modulo 2^32 (supports unbounded stream lengths) |
| 透過性 | 100% bit-exact lossless data preservation |
| ストリーミングとプログレッシブ | Sequential single-pass streaming playback over pipes and HTTP networks |
技術比較マトリックス: GZ 対 競合製品
| 技術属性 | GZ (現在) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| 解凍速度 | 速い(約 300 MB/s) | 遅い(約 40 MB/s) | 非常に速い(約 400 MB/s) | 超高速(>1.5 GB/s) |
| 普遍的な Web 採用 | すべてのブラウザとサーバーの 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 Gzip Extractor を使用して、部分的な内容を抽出します。
セキュリティ分析とパーサー攻撃ベクトル
Gzip パーサーは、ユーザー制御のヘッダーと DEFLATE ビットストリームを処理するため、解凍爆弾に対して保護する必要があります。
既知の攻撃ベクター
- 数メガバイトの Gzip データを数百ギガバイトのディスク容量に拡張する解凍爆弾 (zip 爆弾)。
- ヘッダーからオプションの元のファイル名文字列を読み取る際のバッファオーバーフロー。
- 32 ビット CRC チェックの比較中の整数オーバーフロー。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- すべての Web クライアントの 100% でサポートされている、インターネット HTTP 圧縮(「Content-Encoding: gzip」)の普遍的なベンチマークです。
- 10 バイトのヘッダー内に、元のファイルの変更タイムスタンプとオプションの元のファイル名が保持されます。
- 解凍時の軽量な CPU フットプリントにより、低電力のモバイルデバイスやルーターでもスムーズに動作します。
技術的な制限とデメリット
- 単一ファイルの圧縮のみ:事前に TAR コンテナにバンドルしないと、複数のファイルやディレクトリを圧縮できません。
- 現代の Web テキストにおいて、Brotli や Zstandard などの最新アルゴリズムよりも圧縮率が低いです。
- フッターの非圧縮サイズフィールドが 32 ビットの modulo 2^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ファイルを即座に解凍できます。