如何验证文件上传是否被压缩?

如何验证文件上传是否被压缩?

我需要将大文件上传到服务器(Debian 4.19、Apache 2.4、PHP),并希望确保在传输过程中应用了压缩。数据从服务器到客户端都是压缩的,但我不知道如何检查上传的文件是否也经过压缩(或者是否有可能)。

请求标头显示 gzip 和 deflate 被接受(我删除了 cookie 信息):

POST /process HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: max-age=0
Connection: keep-alive
Content-Length: 9846360
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary0yZXYBFZfsQELgvR

我无法从响应标头中得到任何答案:

HTTP/1.1 302 Found
Date: Tue, 04 Apr 2023 08:50:07 GMT
Server: Apache
Cache-Control: no-cache, private
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

该文件通过表单 ( <input type="file" ...>) 发布。扩展名为 EDF(心电图),我不知道应该为 deflate 模块 (/etc/apache2/mods-enabled/deflate.conf) 设置哪种内容类型(如果相关的话)。当前配置为:

<IfModule mod_deflate.c>
        <IfModule mod_filter.c>
                AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/csv
                AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
                AddOutputFilterByType DEFLATE application/rss+xml
                AddOutputFilterByType DEFLATE application/xml
        </IfModule>
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

答案1

如果在服务器级别正确启用了压缩,您应该会看到一个额外的响应标头。就我而言,我mod_deflate在 Apache 中使用了该模块。因此,我得到了

Content-Encoding:  gzip

相关内容