您好,欢迎来到微智科技网。
搜索
您的当前位置:首页HTTPgzip和deflate的几点区别

HTTPgzip和deflate的几点区别

来源:微智科技网
HTTPgzip和deflate的⼏点区别

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()结果头部为0x7c。

deflate 是最基础的算法,gzip 在 deflate 的 raw data 前增加了 10 个字节的

gzheader,尾部添加了 8 个字节的校验字节(可选 crc32 和 adler32) 和长度标识字节。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务