HTTP gzip和deflate的几点区别
HTTP 区别 几点 gzip
2023-09-14 08:58:59 时间
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的几点区别
相关文章
- HTTP协议/RTSP协议/RTMP协议的区别
- Node.js之HTTP请求与响应
- [Angular 2] Async Http
- 请说明一下http和https的区别
- 【安富莱TCPnet网络教程】HTTP通信实例
- 前端面试题:常见的 HTTP 请求有哪些 ? 他们的区别是什么 ?
- 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别试读版
- 使用自定义 HTTP Interceptor 记录 SAP Spartacus 发送的 OCC API 以及响应
- 使用 http-proxy 代理 HTTP 请求时遇到的 the requested url is invalid 错误消息
- Atitit 高并发设计实践 艾提拉著 目录 1. 并发的实现俩中模式 并发角度来看 基于事件触发vs线程的1 2. 负载均衡1 2.1. 云服务模型paas caas faas+http
- Android面向HTTP协议发送post请求
- Java开发工程师系列讲解之——『http协议篇』
- http超文本传输协议,GET与POST的区别