1

Предполагая, что сервер настроен правильно, современные браузеры могут автоматически распаковывать файлы .gzip при их загрузке. То же самое верно для файла .tar.gz?

Например, скажем, у вас есть игра HTML5 с большим количеством ресурсов. Было бы целесообразно сжать ресурсы (модели игр, звук и т.д.) В один файл .tar, а затем (я полагаю) снова сжать его в файл .gzip. Нужно ли что-то особенное делать на стороне клиента, чтобы распаковать их? Или есть лучший подход к сжатию ресурсов на сервере, что делает мой вопрос спорным?

1 ответ1

2

Краткий ответ: браузер этого не делает.

Большинство веб-серверов могут прозрачно gzip данные, отправляемые в ваш браузер, чтобы сэкономить время передачи, но gzip - это просто алгоритм сжатия. С другой стороны, tar - это формат, используемый для пакетирования файлов в один архив.

Более длинный ответ заключается в том, что это взаимодействие между двумя разными заголовками HTTP: Content-Encoding и Content-Type.

Когда вы нажимаете на веб-страницу, которая использует gzip , вы получаете Content-Type text/html с Content-Encoding из gzip . Браузер знает, как обрабатывать text/html , поэтому он прозрачно распаковывает ответ и отображает его на экране.

Когда вы загружаете файл .gz или tar , вы получаете что-то с приложением Content-Type application/x-gzip (или x-tar или x-tar-gz), которое предлагает браузеру обрабатывать данные как скачать файл, а не пытаться что-то с ним сделать самостоятельно.

Content-Encoding для tar , поскольку этот заголовок используется только для объявления типа сжатия - поэтому отправка файла .tar.gz в браузер с кодировкой gzip будет бессмысленной и расточительной. Данные уже сжаты.

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