3

Последние версии Chrome и Chromium автоматически распаковывают файлы .tar.gz для меня в OS X и Linux. При использовании 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, очевидно, сохранил имя файла, но расширил его (размер файла в ~ 4 раза больше, чем из файла, загруженного wget).

Как администратор сайта, как я могу предотвратить распаковку файла Chrome/Chromium?

Обновить:

В соответствии с curl -I http://mydomain/dir/file.tar.gz наш комбо Apache/Tomcat отвечает

Content-Encoding: x-gzip

Пробные файлы .tar.gz с других веб-сайтов не распаковываются chrome и не сообщают заголовок Content-Encoding: x-gzip , так что, похоже, есть связь.

2 ответа2

5

Скорее всего, ваш веб-сервер отправляет файл .tar.gz с заголовком content-encoding: gzip , в результате чего веб-браузер полагает, что слой gzip был применен только для экономии полосы пропускания, и что вы действительно намеревались отправить, был архив .tar . Chrome разархивирует его на другой стороне, как это было бы с любым другим файлом (.html , .js , .css и т.д.), Который он получает gzip (хотя он покорно не изменяет имя файла).

Чтобы это исправить, убедитесь, что ваш веб-сервер обслуживает файлы .tar.gz без заголовка content-encoding: gzip .

Дополнительная информация: https://code.google.com/p/chromium/issues/detail?id=83292.

0

По словам нашего хостинг-провайдера, заголовок Content-Encoding: x-gzip был вызван Apache перед нашим Tomcat. Удаление следующей строки:

LoadModule deflate_module               modules/mod_deflate.so

Из его конфигурации решена проблема.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .