我正在运行 API 代理服务器,并想要压缩从 API 端点获取的(未压缩的)响应内容,以便更快地将它们发送给发起请求的客户端。
但是,我想知道在服务器上执行压缩时是否存在任何临界点,将压缩的响应内容发送到客户端并在客户端执行内容的解压缩实际上会比直接将未压缩的响应内容发送到客户端花费更长的时间。
答案1
答案取决于响应的可压缩性和平均响应大小。对于较小的响应,gzip 打包开销将使输出比未压缩时更长,并消耗不必要的 CPU。
以 Tomcat 为例,默认最小可压缩大小为 2kb。如果您的 API 返回的是 JPG,那么压缩也会是一个失败的提议。
您的方法应该是,如果您的响应大小和压缩率,则制作直方图,并调整压缩过滤器以跳过太小而无法提供合理压缩的对象。