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
~~~
';