ブラウザが自動的にgzip-encodeしますか?短い答えは...
HAAHAHAAahahahahahhahaです。
長い答えはいくつかのユーザーエージェントは、このようなことを行うことができるということですが、あなたは間違いなくそれに頼ることはできません。 Apacheのmod_deflateドキュメントの状態:
いくつかの特別なアプリケーションは、実際にはいくつかのWebDAVクライアントなどの要求圧縮をサポートしています。
いいえ、それはうまくいきません。自分で適切なHTTPリクエストメッセージを生成する必要があります。コンテンツ自体がapplication/json
であるため、適切なヘッダーはContent-Encoding: gzip
で、Content-Type:
ではありません。トランスポート用のHTTP要求メッセージのエンティティ本文をエンコードするだけです。
圧縮後のメッセージエンティティ本体のサイズをバイト単位で指定する適切なContent-Length:
ヘッダーを追加する必要があります。または、Transfer-Encoding: chunked
を使用してHTTPメッセージを送信し、コンテンツ長の指定を省略します。受信側で
、あなたできinstruct mod_deflate
to use an input filter情報を解凍する:
<Location /dav-area>
SetInputFilter DEFLATE
</Location>
あなただけのリソースのカップルのための圧縮されたメッセージ本文を受信している場合、これは利き少し重いです。その代わりに、クライアント側のスクリプトを使用してContent-Encoding: gzip
ヘッダーを確認し、要求本体を手動で解凍するだけです。 PHPでこれを行う方法は、まったく別の質問です。それについての詳細が必要な場合は、別の質問を投稿する必要があります。
小さなバーストのJSONテキストを送信する場合は、データを圧縮するために必要な処理オーバーヘッドが、転送サイズのメリットよりも大きい可能性があります。あなたの要求にバイナリファイルをストリーミングすることについて話しているのであれば、別の話です。しかし、JSON?おそらくあなたの時間の価値はありません。 – rdlowrey
私はそれをすることができないほど多くを考えましたが、私は何とか尋ねると言いました。私はJSONフィールドの1つを圧縮し、アプリケーション(Sinatra)で解凍するバージョンを作っています。私はこれが私の状況のためにそれをする最善の方法かもしれないと思う。そのフィールドの情報はまともなサイズなので、圧縮が便利です。ありがとうございます –
"HAAHAHAAahahahahahhaha。"非常に圧縮可能です。 @MarkAdler Ha。 –