Http\Response->gzip

最后更新于:2022-04-02 06:33:34

# Http\\Response->gzip [TOC] ## 废弃 > 此函数在`4.1.0`或更高版本中已废弃, 请移步[http\_compression](http\_compression.md) 在新版本中使用`http_compression`配置项取代了`gzip`方法。主要原因是`gzip()`方法未判断浏览器客户端传入的`Accept-Encoding`头,如果客户端不支持`gzip`压缩,强行使用会导致客户端无法解压。 全新的`http_compression`配置项会根据客户端`Accept-Encoding`头,自动选择是否压缩,并自动选择最佳的压缩算法。 ## 函数原型 启用`Http GZIP`压缩。压缩可以减小`HTML`内容的尺寸,有效节省网络带宽,提高响应时间。必须在`write/end`发送内容之前执行`gzip`,否则会抛出错误。 ~~~ swoole_http_response->gzip(int $level = 1); ~~~ * `$level`压缩等级,范围是`1-9`,等级越高压缩后的尺寸越小,但`CPU`消耗更多。默认为1 * 调用`gzip`方法后,底层会自动添加`Http`编码头,PHP代码中不应当再行设置相关Http头 > `gzip`压缩在`1.7.14`以上版本可用 > `jpg/png/gif`格式的图片已经经过压缩,无需再次压缩 ## 依赖 `gzip`功能依赖`zlib`库,在编译`swoole`时底层会检测系统是否存在`zlib`,如果不存在,`gzip`方法将不可用。 可以使用`yum`或`apt-get`安装`zlib`库: ~~~ sudo apt-get install libz-dev ~~~
';