deflate与gzip
来源:互联网 发布:几何刚度矩阵 编辑:程序博客网 时间:2024/05/20 01:35
gzip是一种数据格式,默认且目前仅使用deflate算法压缩data部分;
deflate是一种压缩算法,是huffman编码的一种加强。
deflate与gzip解压的代码几乎相同,可以合成一块代码。
区别仅有:
deflate使用inflateInit(),而gzip使用inflateInit2()进行初始化,比 inflateInit()多一个参数: -MAX_WBITS,表示处理raw deflate数据。因为gzip数据中的zlib压缩数据块没有zlib header的两个字节。使用inflateInit2时要求zlib库忽略zlib header。在zlib手册中要求windowBits为8..15,但是实际上其它范围的数据有特殊作用,见zlib.h中的注释,如负数表示raw deflate。
Apache的deflate变种可能也没有zlib header,需要添加假头后处理。即MS的错误deflate (raw deflate).zlib头第1字节一般是0x78, 第2字节与第一字节合起来的双字节应能被31整除,详见rfc1950。例如Firefox的zlib假头为0x7801,python zlib.compress()结果头部为0x789c。
deflate 是最基础的算法,gzip 在 deflate 的 raw data 前增加了 10 个字节的 gzheader,尾部添加了 8 个字节的校验字节(可选 crc32 和 adler32) 和长度标识字节。
deflate是一种压缩算法,是huffman编码的一种加强。
deflate与gzip解压的代码几乎相同,可以合成一块代码。
区别仅有:
deflate使用inflateInit(),而gzip使用inflateInit2()进行初始化,比 inflateInit()多一个参数: -MAX_WBITS,表示处理raw deflate数据。因为gzip数据中的zlib压缩数据块没有zlib header的两个字节。使用inflateInit2时要求zlib库忽略zlib header。在zlib手册中要求windowBits为8..15,但是实际上其它范围的数据有特殊作用,见zlib.h中的注释,如负数表示raw deflate。
Apache的deflate变种可能也没有zlib header,需要添加假头后处理。即MS的错误deflate (raw deflate).zlib头第1字节一般是0x78, 第2字节与第一字节合起来的双字节应能被31整除,详见rfc1950。例如Firefox的zlib假头为0x7801,python zlib.compress()结果头部为0x789c。
deflate 是最基础的算法,gzip 在 deflate 的 raw data 前增加了 10 个字节的 gzheader,尾部添加了 8 个字节的校验字节(可选 crc32 和 adler32) 和长度标识字节。
0 0
- deflate与gzip
- deflate与gzip
- apcache的gzip与deflate对比
- C# Deflate、GZip压缩与解压缩
- web中gzip,deflate的压缩与解压
- Accept-Encoding: gzip,deflate
- gzip and deflate
- Accept-Encoding: gzip,deflate
- gzip,deflate,zlib辨析
- GZIP, ZLIB, DEFLATE, 文件格式
- Accept-Encoding: gzip,deflate
- gzip,deflate,zlib辨析
- GZip 和 deflate压缩
- apache开启gzip deflate
- gzip,deflate,zlib辨析
- GZIP, ZLIB, DEFLATE, 文件格式 --zz
- .NET GZIP,deflate压缩(转)
- 抓取网页的gzip/deflate
- Linux/Ubuntu下如何删除文件或者目录
- JS数组的遍历的特殊性
- 基于WebRTC的社交云电视原型
- 如何处理窗口闪烁问题及双缓冲的原理
- Samba 启用符号链接
- deflate与gzip
- 求一个整数的二进制中1的个数
- 10_二进制中1的个数
- 【ThinkingInC++】36、联合体
- 堆函数
- 【ThinkingInC++】37、更安全的union可以封装在一个类中
- 如何删除鼠标右键菜单里的打开按钮
- Camel查找组件方式
- 存储过程语法及实例