Chromium:防止解壓縮 tar.gz

Chromium:防止解壓縮 tar.gz

最新的 Chrome 和 Chromium 似乎會在 OS X 和 Linux 上自動解壓縮 .tar.gz 檔案。當使用wget相同的 URL 時,它顯示:

$ wget http://mydomain/dir/file.tar.gz
...
HTTP request sent, awaiting response... 200 OK
Length: ... [application/octet-stream]
...

驗證文件類型:

$ file file.tar.gz
file.tar.gz: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)

對使用 Chrome 或 Chromium 下載的檔案執行相同操作時:

$ file file.tar.gz
file.tar.gz: POSIX tar archive

請注意,Chrome/Chromium 顯然保留了檔案名,但對其進行了擴展(檔案大小比 wget 下載的檔案大約 4 倍)。

身為網站管理員,如何阻止 Chrome/Chromium 解壓縮檔?

更新:

根據curl -I http://mydomain/dir/file.tar.gz我們的 Apache/Tomcat 組合響應

Content-Encoding: x-gzip

嘗試過.tar.gz其他網站的文件不會被 Chrome 解壓縮,也不會報告Content-Encoding: x-gzip標頭,因此似乎存在某種關係。

答案1

您的 Web 伺服器可能會發送.tar.gz帶有標頭的文件content-encoding: gzip,導致 Web 瀏覽器假定應用 gzip 層只是為了節省頻寬,而您真正想要發送的是存檔.tar。 Chrome 會在另一側進行解壓縮,就像處理收到 gzip 壓縮的任何其他檔案( .html.js、等)一樣.css(但它忠實地不會修改檔案名稱)。

若要解決此問題,請確保您的 Web 伺服器提供.tar.gz不含標頭的檔案content-encoding: gzip

更多資訊:https://code.google.com/p/chromium/issues/detail?id=83292

答案2

根據我們的託管提供者的說法,該標頭Content-Encoding: x-gzip是由 Tomcat 前面的 Apache 引起的。刪除以下行:

LoadModule deflate_module               modules/mod_deflate.so

從它的配置解決了這個問題。

相關內容