Является ли gzip настоящим ZIP-файлом? - PullRequest
2 голосов
/ 12 октября 2011

Содержит ли gzip архив ссылочных ресурсов, таких как внешние JS, CSS и изображения, или он сжимает только один файл?

Если браузер никогда не видел сайт ранее и имеетничего не кешируется, тогда кажется хорошей идеей отправить поверх реального ZIP-файла, который распаковывает браузер.Это так?

Обновление: Черт возьми, Gzip!Почему вы не можете разархивировать настоящий ZIP-файл?!

Ответы [ 4 ]

3 голосов
/ 12 октября 2011

Сжать только один файл. Вам необходимо объединить сжатие (например, gz, bz2 или xz) с форматом архива (например, tar или cpio) для соответствия функциональности ZIP (следовательно, .tar.gz файлов).

Браузеры передают несколько запросов, они не запрашивают ZIP-файл. Браузеры полагаются на сжатие.

Если вы хотите узнать об этой теме, посмотрите на проблемы, которые решаются SPDY, чтобы лучше понять недостатки HTTP.

2 голосов
/ 12 октября 2011

Во-первых, gzip - это алгоритм сжатия, поэтому он сжимает только данные (которые не обязательно должны быть файлом, любая строка сжимается с помощью gzip), он не архивирует несколько ресурсов вместе (в отличие от ZIP(который выполняет как архивирование, так и сжатие и работает с файлами).

Во-вторых, я еще не видел браузер, который бы поддерживал сжатие ZIP (хотя это интересная идея).Самым близким, что я видел, является MHTML-архив , который содержит все ресурсы одной страницы;который, в свою очередь, может быть сжат любым алгоритмом;опять же, он не поддерживается повсеместно.

В-третьих, обычным способом является сжатие каждого ответа gzip отдельно (будь то HTML, JS, CSS или еще что-нибудь) - обратите внимание, что распространенные форматы изображений уже сжаты, такне получая ощутимой выгоды от их повторного сжатия).

2 голосов
/ 12 октября 2011

Если вы имеете в виду связь веб-сервера с веб-браузером. Веб-сервер сжимает ответ, а браузер распаковывает его. Но каждый ответ будет сжат.

Таким образом, при обмене данными между веб-сервером и веб-браузером не будет такого понятия, как сжатие нескольких активов.

В более общем случае: GZIP сжимает только «отдельные файлы». Вам нужно сначала инкапсулировать их в архивном формате, если вы хотите сжать несколько файлов с помощью gzip.

1 голос
/ 12 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...