Windows

Apache:壓縮為 zip(不是 gzip)

  • August 20, 2020

我已配置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。

引用自:https://serverfault.com/questions/1030557