#author("2025-04-15T04:30:29+00:00","default:iseki","iseki")
#author("2025-04-15T04:30:42+00:00","default:iseki","iseki")
** gzip [#z2a92a3c]
- ファイル圧縮,伸長の実装
- アルゴリズムには deflateを使用.
- アルゴリズムには [[deflate]] を使用.
- RFC1952 http://www.ietf.org/rfc/rfc1952.txt
- RFC1952 日本語解説: http://www.futomi.com/lecture/japanese/rfc1952.html#s2_2

*** gzip と deflate [#b19da100]
- gzip はアルゴリズムに deflate を使用しているが,データとしての構造は一致しない(場合がある)
-- deflate = deflate header + データ  
--- deflate herder: 0x78 0xda の2Byte固定
-- gzip = gzip header + データ + gzip tailer 
--- gzip header, tailer の構造の詳細については 上記RFCを参照
--- 最も単純な gzip header = 0x1f 0x8b 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0xff
--- 最も単純かつ不正な gzip tailer = 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00


*** deflate から gzip へのデータ変換 [#da2e0d0a]
- deflate から gzip のデータ構造に変換するには,deflate の先頭2Byte(0x78 0xda) を取り除いて,gzip の header と tailer を付加する.
-- しかしながら,gzip の tailer は CRC と 伸長(解凍)後のデータ長であるので,deflate のデータから計算するのは,困難.
-- tailer を適当に 0x00 0x00 0x00 0x00  0x00 0x00 0x00 x00 とすると.gunzip ではデータエラーを起して解凍できない.
-- zcat でもエラーは表示するが,一応解凍は可能.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS