zoukankan
html css js c++ java
HTTP gzip和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()结果头部为0x789c。
deflate 是最基础的算法,gzip 在 deflate 的 raw data 前增加了 10 个字节的 gzheader,尾部添加了 8 个字节的校验字节(可选 crc32 和 adler32) 和长度标识字节。
gzip和deflate的几点区别
查看全文
相关阅读:
编码和解码总结
编码和解码程序例
IO流字节流输入输出格式
递归经典题
ArrayList去重
集合
接口文档
Vue项目零碎知识(全局js,css配置,element-UI,bs使用, img动态配置,js数组)
djang项目中的疑问及解决办法(ValueError: Invalid model reference 'apps.user.User'. String model references must be of the form 'app_label.ModelName'.)
Django项目中出现的错误及解决办法(ValueError: Dependency on app with no migrations: customuser)
原文地址:https://www.cnblogs.com/androidsj/p/5474584.html
最新文章
聚类时的轮廓系数评价和inertia_
在python绘图中,遇到想要调整图片大小的情况使用plt.figure(figuresize=xxx)没有效果
再NLP中遇到了词汇切分不合理的情况,添加用户字典
在处理大批量的NLP词频矩阵时,出现memoryError的错误
win10激活,亲测有效
安装tree命令
sql预编译&动态语句静态语句
json劫持payload
留个坑,关于流量URL去重
传家宝式思维导图
热门文章
django模板中获取域名地址
项目之初的模型设计与status状态字段
python 单行写法
xsspayload
golang map 读写锁与深度拷贝的坑
关于博客
配置文件Properties集合
CRUD 增删改查和三层架构
常用流类,就五个
简单的文件持久化技术
Copyright © 2011-2022 走看看