Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


9.2.2 HTTPレスポンス圧縮フィルタを使用するための条件

ここでは,HTTPレスポンス圧縮フィルタを使用する場合の条件や注意事項について説明します。

〈この項の構成〉

(1) 前提条件

HTTPレスポンス圧縮機能を使用にするには,次の前提条件を満たしている必要があります。

(2) 必要なメモリ量

HTTPレスポンス圧縮機能に必要なメモリ量は次の計算式で求められます。

HTTPレスポンス圧縮機能に必要なメモリ量(バイト)=HTTPレスポンス圧縮機能が有効となるHTTPリクエストの同時実行数×レスポンスの圧縮しきい値(バイト)

圧縮しきい値とは,HTTPレスポンスボディのサイズによって,HTTPレスポンスを圧縮するかどうかを判定するためのしきい値です。HTTPレスポンスボディのサイズが圧縮しきい値に定義したサイズを超える場合にだけ,HTTPレスポンスを圧縮します。なお,圧縮しきい値は,HTTPリクエストに対して設定します。

圧縮しきい値は,DD(web.xml)に定義します。圧縮しきい値を定義することで,HTTPレスポンスのサイズが小さい場合に,HTTPレスポンスの圧縮に掛かる時間が,通信に掛かる時間よりも大きくならないようにします。

圧縮しきい値は,圧縮するリソースの種別と通信回線の速度によって適切なサイズが決まります。圧縮しきい値に定義するサイズは実測で求め,適切なサイズを定義することを推奨します。

(3) HTTPレスポンス圧縮機能を有効にする場合の条件

HTTPレスポンス圧縮機能が有効になる条件を指定できます。指定できる条件を次に示します。

(4) 注意事項

HTTPレスポンス圧縮フィルタの定義に関する注意事項

HTTPレスポンス圧縮フィルタを使用する場合,built-inフィルタのHTTPリクエストおよびHTTPレスポンスへの作用やフィルタ連鎖の順序制約を考慮して,WebアプリケーションにHTTPレスポンス圧縮フィルタを組み込む必要があります。built-inフィルタの詳細については,「9.1.1 アプリケーションサーバが提供するサーブレットフィルタ(built-inフィルタ)」を参照してください。

なお,Servlet 3.0以降では,web.xmlではなくAPIでのフィルタ定義ができますが,built-inフィルタはAPIでのフィルタ定義はできません。

エラーページに関する注意事項

HTTPレスポンス圧縮機能を使用するWebアプリケーションでは,次の機能を使用してエラーページをカスタマイズできます。

  • Webサーバの機能を使用したエラーページのカスタマイズ

  • インプロセスHTTPサーバによるエラーページのカスタマイズ

  • web.xmlの<error-page>タグを使用したエラーページのカスタマイズ

web.xmlの<error-page>タグを使用したエラーページを使用する場合は,エラーページに静的コンテンツ,またはレスポンスからjavax.servlet.ServletOutputStreamを取得して使用するサーブレットを指定してください。

HTTPレスポンス圧縮機能では圧縮後のデータの出力にレスポンスオブジェクトから取得したjavax.servlet.ServletOutputStreamを使用します。そのため,エラーページを生成するサーブレット,またはJSPでレスポンスオブジェクトからは,java.io.PrintWriterを取得できません。