Apache:壓縮為 zip(不是 gzip)
我已配置
apache 2.4
為在將內容傳遞給客戶端之前對其進行壓縮,mod_deflate
並使用客戶端標頭設置為"Accept-Encoding: gzip"
. 所以我已經開始工作了,生成了一個有效的 gzipped 文件:curl --header "Accept-Encoding: gzip" https://my.website/ > content.gz
有沒有辦法允許
"Accept-Encoding: zip"
壓縮為zip
?據我了解文件這似乎是不可能的:
gzip 編碼是唯一支持以確保與舊瀏覽器實現完全兼容的編碼。不支持 deflate 編碼…(https://httpd.apache.org/docs/2.4/mod/mod_deflate.html)
問題來自
Windows
無法解壓縮gzip
文件的使用者(我猜只使用 Windows 本機工具)。[編輯:正如 gerald-schneider 所指出的,瀏覽器會自動解壓縮內容——但我們正在使用
curl
這樣的命令行工具來編寫 API 腳本,因此不涉及瀏覽器。也感謝所有其他答案和評論,我想我應該更精確,即寫下curl
開始的命令]。
正如問題對 apache 文件的引用所指出的那樣,無法將 apache 配置為提供壓縮
zip
的內容,mod_deflate
並且客戶端的標頭設置為Accept-Encoding: zip
. 只gzip
工作。如果使用者使用瀏覽器,該瀏覽器將即時對其進行解碼。如果使用者下載內容,例如curl
她必須對gzip
編輯的內容進行壓縮,無論是使用作業系統本機工具還是已安裝的工具(例如,Windows 使用者需要後者)。
我認為您誤解了 HTTP 協議中的壓縮的用途。它不適用於下載檔案。這是為了減少您在瀏覽時傳輸的數據。被它壓縮的文件是 HTML、CSS、JavaScripts 和圖像。解壓縮由瀏覽器在顯示頁面之前處理。並且瀏覽器可以在 Windows 上很好地處理 gzip。