GZIPストリームから生DEFLATEへのコンバーター

GZIPストリームを生のDEFLATEに変換し、外部のファイルラッパーとヘッダーメタデータを取り除くことで、特殊なネットワークプロトコルや低レベルのアーカイブ用に圧縮ペイロードのみを残します。

ファイルを選択またはドラッグ

ここにファイルを選択またはドロップ

100%プライベートなブラウザ内変換 - ファイルがデバイスから外部に出ることはありません

または貼り付け Ctrl+V
ネットワーク送信ゼロのプライバシー保証: 外部サーバーへのデータ送信は0バイトです。すべての処理はお使いのブラウザのサンドボックス内でローカルに実行されます。

フォーマットの比較と技術仕様

仕様GZIPDEFLATE
MIMEタイプapplication/gzipapplication/zlib
タイプDEFLATE stream containerraw DEFLATE stream
圧縮DEFLATE (RFC 1951)LZ77 + Huffman coding
標準仕様IETF RFC 1952IETF RFC 1950 / RFC 1951
マジックバイトヘッダー1F 8B (gzip ID1/ID2)78 01 / 78 9C / 78 DA (zlib header bytes)

フォーマットの概要と用途

GZIPストリームから生のDEFLATEへの変換は、Web開発、ネットワークプログラミング、および低レベルのデータストレージワークフローで頻繁に行われます。フォーマットに元のファイル名や変更タイムスタンプなどの便利なメタデータが含まれているため、開発者は単一のファイルをディスクに保存する際にGZIPをよく扱います。しかし、最新のHTTP圧縮プロトコルや特定のバイオナフォーマットでは、ラッパーバイトを含まない圧縮ペイロードのみが期待されます。 この変換を実行することで、エンジニアは標準的な圧縮データをネットワークストリームやカスタムパーサーに直接流し込むことができます。たとえば、カスタムHTTP応答ハンドラーの構築やZIPアーカイブの操作では、多くの場合、GZIPヘッダーとCRC32フッターを削除して生のアルゴリズム出力を分離する必要があります。制約のあるプログラミング環境においてすべてのバイトが重要である場合、この追加のコンテナデータを削除することでオーバーヘッドが削減されます。

技術仕様とコーデックの内訳

MIMEタイプ application/gzip で識別されるGZIPストリームは、RFC 1952で定義されたコンテナ構造を使用します。2バイトのマジックナンバーヘッダー(0x1F、0x8B)で始まり、その後に圧縮フラグ、変更時刻、オペレーティングシステムID、およびオプションのファイル名が続きます。実際の圧縮データは中央に配置され、ファイルは4バイトのCRC32チェックサムと4バイトの非圧縮サイズインジケータで終わります。対照的に、application/zlib または生ストリームで識別される生のDEFLATEは、RFC 1951に依存しています。マジックバイト、ヘッダー、フッターは含まれていません。LZ77アルゴリズムとハフマン符号化を組み合わせて使用し、圧縮ブロックを直接保存します。両方のフォーマットはまったく同じDEFLATE圧縮エンジンを使用しているため、相互変換は完全にロスレスです。変換プロセスは、単にGZIPラッパーを展開し、メタデータを破棄し、内部のDEFLATEバイトストリームを抽出します。

OSとブラウザの互換性

生のDEFLATEストリームは、Python、Node.js、C++などの標準的なプログラミング言語を通じて、最新のオペレーティングシステムやWebランタイムでネイティブに実行されます。ブラウザはHTTPコンテンツエンコーディングヘッダースタックを介してDEFLATEをネイティブに処理します。Windows、macOS、Linuxなどのオペレーティングシステムは、zlibなどのシステム圧縮ライブラリを介して生ストリームをサポートします。AndroidやiOSなどのモバイルプラットフォームは、カスタムアプリストレージ層向けのDEFLATEルーチンへの直接APIアクセスを提供します。

💡 役立つ情報

ターゲットパーサーがzlibラップされたストリームではなく純粋なRFC 1951ストリームを期待していることを常に確認してください。zlibは生のDEFLATEパーサーが拒否する2バイトのヘッダーを追加するためです。

フォーマットの比較と技術仕様

GZIPストリームに圧縮された10メガバイトのテキストファイルは、約2メガバイトに縮小します。ヘッダーとフッターを削ぎ落として生のDEFLATEファイルを作成すると、同一の2メガバイトのペイロードサイズが得られます。この2メガバイトのファイルの転送には、500 Mbpsのファイバー接続で約0.04秒、標準的な5Gネットワークで約0.4秒、混雑した4Gセルラーリンクで約4秒かかります。

よくある質問

品質を落とさずにGZIPストリームを生DEFLATEに変換するにはどうすればよいですか?

両方のフォーマットは同一のロスレス圧縮アルゴリズムを使用します。それらを変換することは、単にGZIPコンテナを読み取り、10バイトのヘッダーと8バイトのフッターを削ぎ落とし、内部の圧縮ブロックを保存することを意味します。基盤となるアルゴリズムが変更されないため、データは失われません。

GZIPストリームと生のDEFLATEの違いは何ですか?

GZIPは、マジックバイトヘッダー、元のファイル名、変更タイムスタンプ、チェックサムフッターを含む完全なファイルコンテナです。生のDEFLATEは圧縮データそのものであり、ヘッダー、フッター、ファイルメタデータは含まれていません。