如何防止通过 HTTP 提供的图像被压缩

如何防止通过 HTTP 提供的图像被压缩

我的服务器(以及本地计算机)中有一个已优化的 JPEG 图像,大小为 32.07 kB,800px * 534px,如果我通过浏览器请求它,它会保持相同的宽度 * 高度,但其尺寸会变小 17,97 Ko 并变得像素化。

我检查了 Apache 配置:

# 加载模块 deflate_module 模块/mod_deflate.so

响应标头:

HTTP/1.1 200 正常
日期:2016 年 1 月 30 日星期六 11:31:50 GMT
服务器:Apache
最后修改时间:2015 年 12 月 26 日星期六 11:56:02 GMT
ETag:“804c-527cbc1833880”
接受范围:字节
内容长度:32844
内容类型:image/jpeg
连接:保持连接

我正在 VPS 服务器上安装 LAMP 环境。我向 OVH 发送了一张工单,询问他们是否在高级级别压缩图像,但仍在等待回复。

除了 Apache 之外,还有其他地方可以检查吗?

另外,我敢打赌这与浏览器无关,因为我在 Firefox 和 Chrome 中得到了相同的结果。

答案1

压缩或不压缩

Content-Length: 32844与您的 jpeg 大小匹配,并且没有标头表明文件已压缩。我假设您也从工作站测试了这一点?

如何验证

使用 curl 或 wget 将图片拉到电脑上,并验证图片大小是否没有改变,假设您的连接是 HTTPS,并且没有其他东西可以拦截通信,例如代理或防病毒软件。代理肯定会改变图片的大小。

代理测试

假设您的 apache 安装中有 mod_headers 模块,请将以下内容添加到您的 apache 配置中以告诉代理不要动该文件。

header set cache-control "private, max-age=0, no-cache, no-transform, no-store"
header set Pragma no-cache

这应该放在<Directory>您正在测试的 jpeg 的特定部分中。

请记住,使用这些标头提供的任何内容都不会被缓存,并且性能会受到影响。可能值得阅读有关缓存控制标头的内容。

相关内容