Apache: сжатие в zip (не gzip)

Apache: сжатие в zip (не gzip)

Я настроил apache 2.4сжатие контента перед его доставкой клиенту, используя mod_deflateи заголовок клиента, установленный на "Accept-Encoding: gzip". Так что это уже работает, создавая действительный сжатый файл:

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для начала].

решение1

Я думаю, вы не поняли, для чего используется сжатие в протоколе HTTP. Оно не для загрузки архивов. Оно предназначено для уменьшения объема данных, которые передаются, когда вы просто просматриваете веб-страницы. Файлы, которые сжимаются с его помощью, — это HTML, CSS, JavaScript и изображения. Распаковка выполняется браузером до отображения страниц. И браузеры прекрасно справляются с gzip в Windows.

решение2

Как указано в цитате из документации Apache, этонетможно настроить apache для обслуживания сжатого контента zipс mod_deflateзаголовком клиента, установленным на Accept-Encoding: zip. gzipРаботает только. Если пользователь используетбраузерчто браузер расшифрует его на лету. Если пользовательзагрузкинапример, curlей необходимо сжать gzipсодержимое архива, используя собственные инструменты ОС или установленные (последнее необходимо, например, для пользователей Windows).

решение3

Читая ваш комментарий, я немного не понимаю, о чем вы спрашиваете:

  • Хотите ли вы, чтобы ваш сервер Apache отправлял обычный (например, HTML или обычный текст) файл с кодировкой Zip вместо Gzip? (Согласно документации, это невозможно)
  • Хотите ли вы, чтобы curl мог извлекать данные с вашего сервера? (в этом случае вам не нужно беспокоиться о кодировке, поскольку это всего лишь «незначительная» оптимизация сети)
  • Хотите, чтобы curl скачивал какой-то zip-контент? В этом случае вам следует настроить httpd так, чтобы он напрямую обслуживал ваш zip-архив с некоторыми настройками "статического файла"

В любом случае, я не уверен, что кодирование контента — это то, что вы здесь ищете...

Связанный контент