2011-02-17 10 views
0

特定のページの内容が異常に大きい問題があります。 5〜10メガの範囲。HTTP応答を圧縮しますか?可能?

これは、サーバー側でVelocityとJavaを使用してレンダリングされます。明らかにこのレスポンスを圧縮/圧縮することは可能ですが、ブラウザ/クライアント側で解凍を処理するには合理的な方法はありますか?

+2

を有効にすると、ちょうどそれがJPEGファイルやGIFのフルだから応答が巨大であれば、彼らはすでにしていることを指摘したいと思います圧縮される。ジップは助けにならないでしょう。私は、PDFがうまく圧縮されるかどうか分からない。 –

+0

私は暗号化されていないpdfsはかなり圧縮可能だと思います(圧縮画像がいっぱいでない限り)。 – Blorgbeard

+0

あなたの応答が本当に大きければ、ネットワーク経由でそれを運ぶことがあなたの問題の中で最も少なくなります。このような膨大なファイルをレンダリングしようとすると、大部分のブラウザは苦労してしまうため、小さな塊に分割する必要があります。 – biziclop

答えて

7

ほとんどの最新のブラウザに組み込まれています。レスポンスが何らかのテキストや簡単に圧縮可能なものであれば、リクエスト/レスポンスはヘッダーを修正する必要があります。

要求

受け入れエンコード:gzipでは、収縮させる

応答

コンテンツエンコード:gzipで

要求の受け入れ-Encodingヘッダーがない場合gzipをインクルードすると、クライアント/ブラウザがそれを処理できないので、明らかに圧縮してはいけません。

一般的に、テキストコンテンツはgzipする必要があります。リソースが500kバイトではなく500バイトの場合、パフォーマンスの理由から意味をなさない可能性があります。 いくつかの例は、html、xml、json、javascriptです。サーバーを構成するには、圧縮するファイルの種類とサイズ制限を設定する必要があります。

をGzip

+0

これは、innertubes上で膨大な圧縮されたWebページを送信すると、ブラウザが自動的に解凍してWebページを表示するような方法であるか、またはブラウザにポップアップが表示されてzipファイルを開くか保存するかそれはディスクに? –

+0

@Tony Ennisこれは、クライアントが要求したリソースを送信し、ブラウザはリソースを自動的に解凍します。 1つのWebページを表示すると、通常は複数のリクエストがサーバーに送信されます。 HTMLページのリクエスト、各画像のリクエストなど –

+0

画像のリクエストが別々に表示されるため、これはインラインJSとのみです。明らかに出力は非常に非効率的である。 – bobber205

関連する問題