Apache: zip として圧縮 (gzip ではない)

Apache: zip として圧縮 (gzip ではない)

apache 2.4クライアントに配信される前に を使用しmod_deflate、クライアントのヘッダーを に設定してコンテンツを圧縮するように構成しました"Accept-Encoding: gzip"。これですでに動作し、有効な gzip 圧縮ファイルが生成されています。

curl --header "Accept-Encoding: gzip" https://my.website/ > content.gz

"Accept-Encoding: zip"として圧縮できるようにする方法はありますかzip?

私が理解している限り、ドキュメントではこれは不可能のようです:

古いブラウザ実装との完全な互換性を確保するためにサポートされているのは gzip エンコーディングのみです。deflate エンコーディングはサポートされていません... (参考:

Windows質問は、ファイルを解凍できないユーザーgzip(Windows ネイティブ ツールのみを使用していると思われます)から寄せられました。

[編集: gerald-schneider さんが指摘したように、ブラウザは自動的にコンテンツを解凍しますが、私たちは API をスクリプト化できるようにコマンドラインツールなどを使用しているため、ブラウザは関与していません。他のすべての回答とコメントにも感謝します。もっと正確に、つまり最初にコマンドcurlを書き留めておくべきだったと思います。curl

答え1

HTTP プロトコルの圧縮の目的を誤解されていると思います。圧縮はアーカイブをダウンロードするためのものではありません。単にブラウズしているときに転送されるデータを削減するためのものです。圧縮されるファイルは HTML、CSS、JavaScript、画像です。解凍はページを表示する前にブラウザによって処理されます。また、ブラウザは Windows 上で gzip を問題なく処理できます。

答え2

質問のApacheドキュメントの引用で指摘されているように、ないApacheを設定して、 とクライアントのヘッダーをzipに設定して、コンテンツを圧縮して配信することができます。mod_deflateAccept-Encoding: zipgzip動作します。ユーザーがブラウザブラウザはそれを即座にデコードします。ユーザーがダウンロードたとえば、OS ネイティブ ツールまたはインストールされたツール (後者は Windows ユーザーなどに必要) を使用して、ed コンテンツをcurlgunzip する必要があります。gzip

答え3

あなたのコメントを読んで、何を尋ねているのか少しわかりません。

  • Apache サーバーで、Gzip ではなく Zip エンコードされた通常のファイル (HTML またはプレーンテキスト) を送信するようにしたいですか? (ドキュメントによると不可能です)
  • curl でサーバーからデータを取得できるようにしますか? (その場合、エンコードは単なる「マイナーな」ネットワーク最適化なので、気にする必要はありません)
  • curl で zip コンテンツをダウンロードしたいですか? その場合は、代わりに httpd を設定して、いくつかの「静的ファイル」設定で zip アーカイブを直接提供する必要があります。

とにかく、ここで探しているものがコンテンツエンコーディングであるかどうかはわかりません...

関連情報