ブラウザは自動的にデータを gzip エンコードしますか? 短い答えはノーです。
長い答えは、一部のユーザーエージェントはこのようなことを行うことができますが、それに頼ることは絶対にできません. Apache mod_deflate ドキュメントの状態:
一部の特別なアプリケーションは実際に要求の圧縮をサポートしています。たとえば、一部の WebDAV クライアントです。
だから、いいえ、それはうまくいきません。適切な HTTP 要求メッセージを自分で生成する必要があります。この場合の適切なヘッダーは and ではContent-Encoding: gzip
ありませんContent-Type:
。これは、コンテンツ自体がapplication/json
であるためです。転送用に HTTP 要求メッセージのエンティティ ボディをエンコードしようとしているだけです。
圧縮後のメッセージ エンティティ ボディのサイズをバイト単位で指定する適切なヘッダーも追加する必要があることに注意してください。または、コンテンツ長の指定を無視しContent-Length:
て HTTP メッセージを送信します。Transfer-Encoding: chunked
受信側では、入力フィルターを使用して情報を解凍するように指示できます。 mod_deflate
<Location /dav-area>
SetInputFilter DEFLATE
</Location>
いくつかのリソースに対して圧縮されたメッセージ本文のみを受信している場合、これは少し面倒です。代わりに、クライアント側スクリプトを使用してContent-Encoding: gzip
ヘッダーを確認し、リクエスト本文を手動で解凍する必要があります。たとえば、PHP でこれを行う方法は、まったく別の問題です。その詳細が必要な場合は、別の質問を投稿する必要があります。