swoole / rfc

Swoole 提案
116 stars 3 forks source link

RFC-1028 HTTP 服务器主动禁止压缩 #84

Closed matyhtf closed 2 years ago

matyhtf commented 2 years ago

背景

目前的实现中,根据客户端Accept-Encoding来判断是否支持压缩,一旦客户端支持压缩,使用Response::end()发送数据时就可以直接开启压缩。

在某些场景下,我们希望用Response::end()直接发送jpgpng等文件的内容,实际上这些格式已经是压缩格式了,即使使用gzip压缩也不会显著地减少数据尺寸,反而压缩会带来额外的性能开销,这时应当允许对当前的Response主动关闭压缩,直接发送原始内容。

期望版本:5.0

选项

Server增加一个http_compression_types选项来控制允许压缩的MIME格式集

$server->set([
    'http_compression_types' => [
        'text/plain',
        'application/x-javascript',
        'text/css',
        'application/xml'',
    ]
]);

同时支持Http\ServerCoroutine\Http\Server以及HTTP2 Server