【協議分析】Gzip格式與解析

一、gzip 與 zlib的關係

zlib被設計成一個免費的、通用的、合法的、不受任何專利保護的無損數據壓縮庫,幾乎可以在任何計算機硬件和操作系統上使用。zlib數據格式本身可以跨平臺移植。zlib由Jean-loup Gailly(壓縮)和Mark Adler(解壓)編寫。Jean-loup也是gzip(1)的主要作者,也是compp .compression FAQ列表的作者和Info-ZIP的Zip的前維護者;Mark也是gzip和UnZip的主要解壓縮例程的作者,也是Zip的原始作者。不足爲奇的是,zlib中使用的壓縮算法與gzip和Zip中使用的壓縮算法本質上是相同的,即源自PKWARE的PKZIP 2.x中的“deflate”方法。

GZIP最早由Jean-loup Gailly和Mark Adler創建,用於UNIX系統的文件壓縮。我們在Linux中經常會用到後綴爲.gz的文件,它們就是GZIP格式的。現今已經成爲Internet 上使用非常普遍的一種數據壓縮格式,或者說一種文件格式。HTTP協議上的GZIP編碼是一種用來改進WEB應用程序性能的技術。大流量的WEB站點常常 使用GZIP壓縮技術來讓用戶感受更快的速度。

GZIP本身只是一種文件格式,其內部通常採用DEFLATE數據格式,而DEFLATE採用LZ77壓縮算法來壓縮數據。

GZIP文件由1到多個“塊”組成,實際上通常只有1塊。每個塊包含頭、數據和尾三部分。塊的概貌如下:

+---+---+---+---+---+---+---+---+---+---+========//========+===========//==========+---+---+---+---+---+---+---+---+
|ID1|ID2| CM|FLG|     MTIME     |XFL| OS|   額外的頭字段   |       壓縮的數據      |     CRC32     |     ISIZE     |
+---+---+---+---+---+---+---+---+---+---+=
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章