Oracle WebCenter Interaction Web サービス開発ガイド

        前   次   新しいウィンドウで目次を開く      
ここから内容の開始

HTTP キャッシュ ヘッダの設定 - Cache-Control

Cache-Control ヘッダを使用すると、コンテンツを直ちに有効期限切れにしたり、キャッシュ機能全体を無効にしたりすることができます。キャッシュされたページレット/ポートレット コンテンツが複数のユーザ間で共有可能かどうかは、このヘッダの値により決まります。

Cache-Control ヘッダには、以下の値を指定することができます。
public 同一の基本設定を使用する複数のユーザ間で、キャッシュされたコンテンツを同一のポータル サーバを使用して共有できるようにします。この値は、使用できる場合は必ず指定してください。
private ポータル サーバにおいて、キャッシュされたコンテンツが共有できないようにします。この場合、ユーザごとに別々のコピーがキャッシュ内に保持されるよう、キャッシュ キーにユーザ ID が追加されます。この値は、電子メール受信トレイ ポートレットのように、機密情報を保護する必要がある場合にのみ使用してください。(ユーザ設定を使用すれば、共有可能コンテンツを実質的に共有できないよう設定することも可能です。)
max-age=[seconds] オブジェクトが最新状態にあると見なされる最大期間を指定します。Expires ヘッダと同様、この値を指定することで、より柔軟な処理が可能となります。[seconds] は、そのオブジェクトを最新状態にする要求がなされた時点からの秒数を表します。
must-revalidate キャッシュに対して、オブジェクトの状態が最新かどうかを判断する場合は受け取った情報に従うよう指定します。HTTP においては、オブジェクトの状態が最新かどうかの判断はキャッシュに委ねられます。この値を指定すると、その判断をユーザ側で厳密に制御することができます。
no-cache Web サービス エディタの設定内容にかかわらず、キャッシュ機能を完全に無効化します。これ以降、クライアントもポータル サーバも、キャッシュされたバージョンを要求するリクエストに対しては応答しません。
JSP で Cache-Control ヘッダのコンフィグレーションを行う場合は setHeader メソッドを使用します。
<%
response.setHeader("Cache-Control","public");
%>
max-age ヘッダを使用した次の例は、直ちにコンテンツを期限切れにする JSP コードです。
<%
response.setHeader("Cache-Control","max-age=0");
%>
.NET で Cache-Control ヘッダにアクセスする場合は、System.Web.HttpCachePolicy クラスを使用します。ヘッダに、public、private、または no-cache を設定する場合は、Response.Cache.SetCacheability メソッドを使用します。
Response.Cache.SetCacheability(HttpCacheability.Public);
.NET でコンテンツの最大有効期間を設定する場合は、Response.Cache.SetMaxAge メソッドを使用します。次の例は、直ちにコンテンツを期限切れにするコードです。
TimeSpan ts = new TimeSpan(0,0,0);
Response.Cache.SetMaxAge(ts);
.NET でヘッダに must-revalidate を設定する場合は、Response.Cache.SetRevalidation メソッドを使用します。
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);

  ページの先頭            前  次