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 |
+---+---+---+---+---+---+---+---+---+---+========//========+===========//==========+---+---+---+---+---+---+---+---+
1. 头部分
|SI1|SI2| XLEN | 长度为XLEN字节的可选项 |
+---+---+---+---+===============//================+
(若 FLG.FNAME = 1) +=======================//========================+
| 原文件名(以NULL结尾) |
+=======================//========================+
(若 FLG.FCOMMENT = 1) +=======================//========================+ | 注释文字(只能使用iso-8859-1字符,以NULL结尾) | +=======================//========================+
| CRC16 | +---+---+
|BFINAL| BTYPE | 数据 | +......+......+......+=============//============+
|
GZIP, ZLIB, DEFLATE, 文件格式 --zz
最新推荐文章于 2024-05-08 21:02:02 发布
GZIP, ZLIB, DEFLATE, 文件格式 转自:
http://apps.hi.baidu.com/share/detail/19276079
2009-12-07 19:29