この章では、Oracle Web Cacheを使用してコンテンツをキャッシュおよび圧縮する方法について概説します。キャッシュへのデータの格納、キャッシュの一貫性およびキャッシュ・ルールについて説明します。また、キャッシュ・ルールと有効期限ポリシーを構成するためのプロパティについて説明します。
この章の項目は次のとおりです。
キャッシュ・ルールを定義して、キャッシュするオブジェクトを決定します。キャッシュ・ルールを作成した場合、そのルールに一致するオブジェクトは、クライアント・リクエストがあるまでキャッシュされません。クライアントが最初にオブジェクトをリクエストすると、Oracle Web Cacheはそのリクエストをオリジン・サーバーに送信します。このリクエストはキャッシュ・ミスになります。このURLにはキャッシュ・ルールが関連付けられているため、Oracle Web Cacheは後続のリクエストのためにそのオブジェクトをキャッシュに格納します。Oracle Web Cacheは、同じオブジェクトに対して2度目のリクエストを受けると、そのオブジェクトをキャッシュからクライアントに送信します。このリクエストはキャッシュ・ヒットになります。
Oracle Web Cacheを停止すると、キャッシュのすべてのオブジェクトが削除されます。さらに、Oracle Web Cacheによって統計もリセットされます。
Oracle Web Cacheがキャッシュ・ルールによってキャッシュへのデータ格納を決定する方法については、第6.3項を参照してください。
Oracle Web Cacheの信頼性を確保する上で、一貫性は非常に重要です。次の機能によって、キャッシュとオリジン・サーバー間の一貫性が確保されます。
有効期限によって、Oracle Web Cacheはキャッシュ内に一定期間存在したオブジェクトを無効にします。オリジン・サーバーまたはデータベースでコンテンツが変更されるタイミングを正確に予測できる場合は、有効期限を使用すると便利です。オブジェクトがいつまでもキャッシュ内に残ることがないように、すべてのキャッシュ・オブジェクトに対して有効期限ポリシーを作成することをお薦めします。
有効期限ポリシーの作成方法は、第6.7項を参照してください。
Oracle Web Cacheは、HTTP/1.1検証モデルを使用して、クライアントに対する最適なレスポンス送信方法を判断します。検証では、2つのバリデータを比較して、それらが同じエンティティを表すのか、異なるエンティティを表すのかが判断されます。具体的には、Oracle Web CacheはIf-Modified-Since
ヘッダーとIf-None-Match
ヘッダーを使用して、次の妥当性を決定します。
キャッシュされたコピーのヘッダーと比較して、ブラウザのヘッダーが有効であること
オリジン・サーバーのヘッダーと比較して、キャッシュされたコピーのヘッダーが有効であること
注意: Oracle Web Cacheは、If-None-Match バリデータに対して弱いバリデータはサポートしていません。Oracle Web Cacheは、他のすべてのIf-None-Match リクエスト・ヘッダー・フィールドの書式をサポートしています。 |
検証の詳細は、次を参照してください。
キャッシュの検証の詳細は、HTTP/1.1仕様書(http://www.ietf.org/rfc/rfc2616.txt
)の第13.3項「Validation Model」を参照してください。
コンテンツを無効にする方法は、第6.2.3項を参照してください。
有効期限ポリシーの作成方法は、第6.7項を参照してください。
有効期限を予測できないコンテンツに対しては、無効化を使用できます。無効化によって、Oracle Web Cacheはオブジェクトを無効にします。オブジェクトが無効になった後にクライアントがそれらをリクエストすると、オブジェクトはキャッシュから削除され、オリジン・サーバーから新しいコンテンツが取得されてキャッシュが更新されます。無効になったオブジェクトはすぐに削除して新しいものに更新するか、あるいはオリジン・サーバーの現在の負荷に基づいて、削除と更新を行うことが可能です。
無効化の詳細は、第7章「コンテンツの無効化」を参照してください。
キャッシュ・ルールにより、静的オブジェクト、複数バージョンのオブジェクト、パーソナライズ・ページ、セッションCookie、埋込みURLパラメータまたはPOST本体パラメータをサポートするページ、および動的ページのコンテンツをキャッシュするかどうかを選択できます。
Fusion Middleware Controlを使用して、URLまたはContent-Type
レスポンス・ヘッダーに基づいたキャッシュ属性を指定することでキャッシュ・ルールを構成するか、またはSurrogate-Control
レスポンス・ヘッダー・フィールド内の特定のオブジェクトに対してキャッシュ属性を設定します。ルールに一致するオブジェクトがクライアントによってリクエストされるまで、それらのオブジェクトはキャッシュに格納されません。
Oracle Web Cacheでは、次の優先順位を使用して、オブジェクトがキャッシュ可能かどうかを決定します。
Fusion Middleware Controlを使用して構成されたキャッシュ・ルール
その他のHTTPヘッダー:
これらのヘッダーのいずれかが存在する場合、Oracle Web Cacheでは、オブジェクトがキャッシュされません。
Surrogate-Control
レスポンス・ヘッダー・フィールドを使用すると、Fusion Middleware Controlによって構成されたキャッシュ・ルールをオリジン・サーバー側でオーバーライドできます。同じオブジェクトに対してSurrogate-Control
レスポンス・ヘッダーとキャッシュ・ルールの両方がある場合、Oracle Web Cacheはこの2つをマージします。たとえば、キャッシュ不可のオブジェクトに対してFusion Middleware Controlで圧縮が使用可能に設定されているキャッシュ・ルールがあり、レスポンス・ヘッダーにSurrogate-Control: max-age=30+60
という記述が含まれている場合、Oracle Web Cacheは両方の設定を考慮します。Oracle Web Cacheは、オブジェクトのキャッシュにSurrogate-Control
レスポンス・ヘッダーのmax-age
制御ディレクティブを使用し、キャッシュ・ルールから圧縮の設定を使用します。Surrogate-Control
レスポンス・ヘッダーとキャッシュ・ルールの間に競合がある場合、Oracle Web CacheではSurrogate-Control
レスポンス・ヘッダーの設定が使用されます。
キャッシュ・ルールもSurrogate-Control
レスポンス・ヘッダーも指定されていない場合、Oracle Web CacheはHTTPプロキシ・キャッシュと同様に動作します。つまり、HTTPヘッダー情報を使用して何がキャッシュ可能かを判断します。一般的に、HTTPプロキシ・キャッシュには静的コンテンツを含むページのみが格納されます。
注意:
|
Oracle Web Cacheがキャッシュへのデータ格納を決定する方法については、第6.1項を参照してください。
オブジェクトに対するキャッシュ・ルールを作成する場合は、まずオブジェクトのルールを特定のサイトに対して設定するのか、すべてのサイトに対してグローバルに設定するのかを決定します。サイト固有のキャッシュ・ルールは、グローバル・ルールよりも優先されます。ルールの対象を決定したら、次にルールの一般的な属性を構成します。
名前、説明、サイト、有効にするかどうかなど、ルールについての情報
受信リクエストがルールに一致する場合にOracle Web Cacheが実行するアクション
受信リクエストに一致するルールをOracle Web Cacheが見つけるための一致条件
一致評価の条件として、リクエストのURL式またはレスポンスのMIME
タイプ、あるいはその両方を使用するのかを選択します。一致条件を選択しない場合、Oracle Web CacheはすべてのURLおよびすべてのMIME
タイプとルールを一致させます。
URL式の入力が面倒な場合には、MIME
タイプに基づいて一致評価を行います。たとえば、各種のイメージ・タイプに対する複雑なURL式を次に示します。
\.(gif|jpe?g|png|bmp)$
かわりに、「MIMEタイプ」オプションを選択し、「次で始まる」を選択して、式フィールドに次の文字列を入力します。
image/
Content-Type
レスポンス・ヘッダーは、通常追加のコンテンツ・パラメータ値を持つため、ほとんどの一致評価では、「次で始まる」オプションを選択します。
式フィールドにはカンマで区切ったリストも入力できます。同じ例で、GIFまたはJPEGレスポンスにのみ一致させたい場合は、式フィールドに次の文字列を入力します。
image/gif, image/jpeg
キャッシュ・ルールを作成したら、次にキャッシュ・ルールの優先順位を指定します。優先順位の高いルールが最初に一致します。サイト固有のキャッシュ・ルールは、グローバルなキャッシュ・ルールよりも優先されます。キャッシュ可能なオブジェクトとキャッシュ不可のオブジェクトのキャッシュ・ルールの順序付けでは、キャッシュ不可のオブジェクトに対して、キャッシュ可能なオブジェクトより高い優先順位を指定します。
表6-1に示されているルールの場合、ルール2は、GETメソッドおよび問合せ文字列を含むGETメソッドを使用するURLのオブジェクトをキャッシュし、ルール3は、POSTメソッドおよびaction=search
に一致するPOST本体を使用するURLのオブジェクトをキャッシュします。順位が反転すると、/cec/cstage?ecaction=ecpassthru2
を含めて、/cec/cstage?ecaction=ecpassthru
で開始するすべてのオブジェクトがキャッシュされます。
表6-1 異なるHTTPメソッドの優先順位の例
優先順位 | 一致条件 | HTTPメソッド | POST本体式 | アクション |
---|---|---|---|---|
1 |
URL式: 正規表現: パス接頭辞: |
GETおよび問合せ文字列を含むGET |
なし |
キャッシュしない |
2 |
URL式: 正規表現: パス接頭辞: |
GETおよび問合せ文字列を含むGET |
なし |
キャッシュ |
3 |
URL式: 正規表現: パス接頭辞: |
POST本体式 |
|
キャッシュ |
4 |
MIMEタイプ:
|
GETおよび問合せ文字列を含むGET |
なし |
キャッシュ |
キャッシュ・ルールの一般的な属性の指定および優先順位の指定に関する詳細は、第6.8.1項を参照してください。
一般的な属性に加え、次に説明するように詳細設定を構成できます。
ページによっては、複数のバージョンが存在してカテゴリ化が可能な場合があります。図6-1に、同じhttps://oraclestore.oracle.com/OA_HTML/ibeCCtpItmDspRte.jsp?item=293017§ion=11538
というオブジェクトを使用して、顧客とオラクル社の従業員に対してそれぞれ異なる価格を表示するページを示します。顧客はec-400-id-acctcat=WALKIN
というCookie名と値を渡していますが、従業員はec-400-id-acctcat=INTERNAL
というCookie名と値を渡しています。
Oracle Web Cacheを構成することにより、次の情報を使用して複数バージョンのページの識別およびキャッシュが可能です。
Cookie(カテゴリCookieとも呼ばれる)を使用するオブジェクトの場合、Cookie名と、そのCookieを使用しないバージョンのオブジェクトをキャッシュするかどうかを指定するキャッシュ・ルールを構成します。
複数のバージョンを持つオブジェクトに対するリクエストがクライアントから初めて送信されると、Oracle Web Cacheはそのリクエストをオリジン・サーバーに渡します。オリジン・サーバーは、カテゴリがCookieで、値が次のように設定されたSet-Cookie
レスポンス・ヘッダーをレスポンスに含めます。
Set-Cookie:cookie=value
Oracle Web Cacheでは、この最初のレスポンスはキャッシュされません。クライアントは、Set-Cookie
レスポンス・ヘッダー・フィールドを受け取ると、Cookieをメモリーに保存します。次回、同じオリジン・サーバーにリクエストを送信するときには、クライアントはCookie
リクエスト・ヘッダー・フィールドに、前回のレスポンスで受け取ったカテゴリCookieの名前と値を次の形式で設定します。
Cookie:cookie=value
Oracle Web Cacheは引き続きオリジン・サーバーにリクエストを転送し、オリジン・サーバーからはSet-Cookie
ヘッダーを含んだ、または含まないレスポンスが返されます。Oracle Web Cacheは、Set-Cookie
レスポンス・ヘッダーに設定されたCookieとその値が、Cookie
リクエスト・ヘッダーに設定されたCookieとその値と一致するかどうかを評価します。Cookieとその値が一致すると、レスポンスがキャッシュされます。Set-Cookie
ヘッダーがない場合は一致と見なされます。Cookieとその値が一致しない場合、レスポンスはキャッシュされません。複数バージョンのオブジェクトがキャッシュされると、Oracle Web Cacheは、クライアントのリクエストのCookieの値を使用して、クライアントのブラウザに該当するバージョンのオブジェクトを返します。
注意: Oracle Web Cacheでは、Set-Cookie レスポンス・ヘッダー・フィールドはキャッシュされません。 |
表6-2に、同じURL http://www.dot.com/page1.htm
の4つの異なるバージョンを示します。URLはuser_type
という名前のCookieを使用します。これは、Customer
、Internal
およびPromotional
というCookie値を含むクライアント・リクエストをサポートします。Oracle Web Cacheがuser_type
Cookieを認識するように構成することにより、Oracle Web Cacheに3つの異なるオブジェクトをキャッシュさせることができます。また、Cookieを使用しないリクエストに対する4番目のオブジェクトをキャッシュするようにOracle Web Cacheを構成することもできます。
表6-2 異なるCookieの値を使用したオブジェクトの複数バージョン
バージョン | URL(URL) | Cookieの名前と値 |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
Cookieなし |
HTTPリクエスト・ヘッダーに基づいて異なるバージョンを使用するオブジェクトの場合、HTTPリクエスト・ヘッダーを指定するキャッシュ・ルールを構成します。HTTPリクエスト・ヘッダーにより、クライアントはリクエストおよびクライアント自身に関する追加情報を渡すことが可能です。Oracle Web Cacheでは、リクエスト・ヘッダーを使用して、該当するバージョンのURLをクライアントに渡します。
Oracle Web Cacheでは、有効なHTTPリクエスト・ヘッダーをすべてサポートしています。表6-3に、Fusion Middleware ControlでサポートされているHTTPリクエスト・ヘッダー・フィールドを示します。標準または他のHTTPリクエスト・ヘッダー・フィールドを指定するには、Surrogate-Control
レスポンス・ヘッダー・フィールドを使用します。
表6-3 HTTPリクエスト・ヘッダー・フィールド
ヘッダー・フィールド | 説明 |
---|---|
レスポンスに使用可能なメディア・タイプを指定します。 例: |
|
レスポンスに使用可能なキャラクタ・セットを指定します。 例: |
|
レスポンスのコンテンツに使用可能なエンコーディングを制限します。 例: |
|
レスポンスに使用する言語セットを指定します。 例: |
|
リクエストを発信したクライアントに関する情報が含まれます。 例: |
注意: Oracle Web Cacheでは、デフォルトでこれらのHTTPリクエスト・ヘッダーの値が解析されません。2つのページの値が異なる場合、Oracle Web Cacheによりそれらのページは別々にキャッシュされます。この問題は、
|
構成の詳細は、第6.8.2項を参照してください。
デフォルトでは、Oracle Web Cacheは、オリジン・サーバーのレスポンスをリクエストURLによって識別します。ただし、リクエストに埋込みURLパラメータまたはPOST本体パラメータが含まれている場合、同じページ・コンテンツのリクエストURLはセッションごとに個別になります。したがって、Oracle Web Cacheでは、個別URLごとにレスポンスがキャッシュされます。その結果、キャッシュ・ヒット率が低くなり、キャッシュ内のオブジェクトに冗長性が生じます。
Oracle Web Cacheが埋込みURLパラメータまたはPOST本体パラメータの値を無視するように構成すると、Oracle Web Cacheは、同じページをリクエストする複数のセッションを1つのキャッシュ・オブジェクトで処理できます。Oracle Web Cacheは、最初のリクエストへのレスポンスをキャッシュし、そのページへの後続のリクエストをこのキャッシュから処理します。
たとえば、ユーザーJane Doeが次のリクエストURLを持つページにアクセスしているとします。
https://oraclestore.oracle.com/OA_HTML/ibeCCtpSctDspRte.jsp?section=10103&session_ID=33436
ユーザーJohn Doeが次のリクエストURLを持つ同じページにアクセスするとします。
https://oraclestore.oracle.com/OA_HTML/ibeCCtpSctDspRte.jsp?section=10103&session_ID=33437
また、このページには、Jane DoeとJohn Doeのそれぞれに対して次のPOST本体が含まれるとします。
section=1013 &session_ID=3346 section=1013 &session_ID=3347
リクエストURLとPOST本体で異なっているのは、session_ID
パラメータの値のみです。このとき、同じオブジェクトの2つのバージョンをキャッシュして送信するのではなく、キャッシュ内の1つのオブジェクトを両方のユーザーに送信するために、session_ID
の値を無視するようにOracle Web Cacheを構成します。
無視するパラメータを構成するには、すべてのキャッシュ・ルールに適用されるグローバル・パラメータを確立するか、特定のサイトのキャッシュ・ルールに適用されるサイト固有のパラメータを確立します。第6.8.3項を参照してください。
オリジン・サーバーで問題が発生し、このルールに一致するリクエストに対するHTTPレスポンスのステータスが200 OKでない場合、Oracle Web Cacheはオリジン・サーバーへのリクエストの再送を試みません。かわりに、キャッシュしたHTTPエラーを返し、既知の不正なレスポンス用のオリジン・サーバーのリソースを節約します。
Oracle Web Cacheでは、デフォルトで、200 OK以外のHTTPレスポンスがキャッシュされません。これらのエラーがキャッシュされるようにするには、エラー・レスポンスを明示的にキャッシュするようにキャッシュ・ルールを構成する必要があります。Oracle Web Cacheは、ルールの有効期限ポリシーに従ってエラー・ページをキャッシュします。問題が解決した後は、HTTPエラー・レスポンスを無効にしてください。
構成の詳細は、第6.8.5項を参照してください。
Oracle Web Cacheでは、セッションCookie、埋込みURLパラメータまたはPOST本体パラメータが存在するリクエストまたは存在しないリクエストの処理方法を指定できます。次の選択が可能です。
セッションCookie、埋込みURLパラメータまたはPOST本体パラメータを持つリクエストに対して、キャッシュ内のオブジェクトを送信または送信しません。
セッションCookie、埋込みURLパラメータまたはPOST本体パラメータを持たないリクエストに対して、キャッシュ内のオブジェクトを送信または送信しません。
たとえば、新規ユーザーの最初のリクエストを受けたときにオリジン・サーバーからセッションを確立する場合、セッションCookieまたはパラメータを持つリクエストに対してはキャッシュ内のオブジェクトを送信し、セッションCookieまたはパラメータを持たないリクエストに対してはキャッシュ内のオブジェクトを送信しないように選択します。
両方に対してオブジェクトを送信するように選択した場合、セッションCookieやパラメータを持つリクエストまたは持たないリクエストで、同じキャッシュ内のオブジェクトを共有するかどうかを指定できます。Oracle Web Cacheでは、Cookieまたはパラメータが含まれないリクエストに対して、デフォルトの文字列が使用されます。
構成の詳細は、第6.8.6項を参照してください。
第6.5.2項では、すべてのセッションにおいてコンテンツが同一であるオブジェクトに対して、埋込みURLパラメータまたはPOST本体パラメータの値を無視する方法について説明しています。ただし、オブジェクトのHTMLコンテンツが<A HREF=...>
のようなハイパーリンク・タグでプログラミングされ、これにユーザーを識別するための埋込みセッション情報が含まれている場合があります。このようなリンクはセッション・エンコードされたURLと呼ばれます。セッション・エンコードされたURLを使用すると、セッション間でごくわずかな相違を持つレスポンスが生成されます。
HTMLハイパーリンク・タグのセッションを、セッションCookie、埋込みURLパラメータまたはPOST本体パラメータから取得したセッション値で置換するように、Oracle Web Cacheを構成できます。セッション値の置換を、埋込みURLパラメータの値の無視と組み合せて構成することで、セッション・エンコードされたURLのセッション・パラメータの値が変更になった場合でも、1つのオブジェクトが複数のセッション用にキャッシュされるようにOracle Web Cacheを構成できます。
注意: Oracle Web Cacheでは、Set-Cookie レスポンス・ヘッダー・フィールドはキャッシュされません。 |
第6.5.2項の例において、オリジン・サーバーによってJane DoeおよびJohn Doeにそれぞれsession_ID=33436
およびsession_ID=33437
という埋込みURLパラメータが割り当てられているとします。図6-2に示されたページには、session_ID
パラメータを含んでいる<A HREF=...>
リンクが複数存在します。Jane Doeの場合、「Oracle Database」ヘッダーの下の「Oracle Database Standard Edition」リンクには、次のHTMLコードが使用されます。
<A HREF="http://oraclestore.oracle.com/OA_HTML/ibeCCtpSctDspRte.jsp?section=10166&session_ID=334326">Oracle Database Standard Edition</A>
John Doeの場合、同じリンクに次のHTMLコードが使用されます。
<A HREF="http://oraclestore.oracle.com/OA_HTML/ibeCCtpSctDspRte.jsp?section=10166&session_ID=334327">Oracle Database Standard Edition</A>
Oracle Web Cacheでは、session_ID
埋込みURLパラメータの値を使用することにより、Jane DoeおよびJohn Doeのそれぞれに該当するセッション情報に置換します。
セッション・エンコードされたURLを含むページがキャッシュに挿入されると、そのページに対する後続のリクエストは、セッションCookie、埋込みURLパラメータまたはPOST本体パラメータのどれを使用しているかに関係なく、キャッシュで処理されます。リクエストにセッションCookieまたは埋込みURLパラメータが含まれていない場合は、セッション・エンコードされたURLのセッション情報が任意の値に構成されたデフォルトの文字列で置換されるように、Oracle Web Cacheを構成できます。
構成の詳細は、第6.8.7項を参照してください。
次に、オブジェクトをキャッシュおよび監視するために必要な手順のサマリーを示します。
キャッシュ・ルールを作成する前に、有効期限ポリシーを作成します。後でキャッシュ・ルールを作成するときに、そのキャッシュ・ルールで適用する有効期限ポリシーを指定します。
キャッシュ内でオブジェクトが期限切れになるタイミングを指定する有効期限ポリシーを作成できます。さらに、オブジェクトが期限切れになった後に、キャッシュ内に存続する期間を指定することも可能です。オブジェクトが期限切れになると、Oracle Web Cacheはすぐに削除するか、または、オリジン・サーバーの容量によって許可される最大時間制限まで待って削除します。
有効期限ポリシーを作成するには、次の手順を実行します。
Fusion Middleware Controlで「Webキャッシュ・メンバー」ページにナビゲートします。第2.6.2項を参照してください。
「Webキャッシュ」メニューから、「管理」→「有効期限」を選択します。
「有効期限ポリシー」ページが表示されます。
「作成」をクリックします。
「有効期限ポリシーの作成」ダイアログ・ボックスが表示されます。
「オブジェクトの有効期限」セクションで、オプションを選択してオブジェクトを期限切れにするタイミングを指定します。
HTTP Expiresヘッダーのとおり: HTTPのCache-Control
またはExpires
レスポンス・ヘッダー・フィールドに従う場合は、このオプションを選択します。これはデフォルトです。
エントリ・キャッシュの後: オブジェクトがキャッシュに入った時間によって期限を設定する場合は、このオプションを選択します。オブジェクトを期限切れにする時間を「時間制限」フィールドに入力します。
作成後: オブジェクトが作成された時間によって期限を設定する場合は、このオプションを選択します。オブジェクトを期限切れにする時間を「時間制限」フィールドに入力します。
「期限切れのオブジェクトに対するアクション」セクションで、期限切れ後のオブジェクトをOracle Web Cacheでどのように処理するかを指定します。
即時削除: Oracle Web Cacheで、オブジェクトを無効にしてすぐに削除します。キャッシュがそのオブジェクトに対する次のリクエストを受信すると、オリジン・サーバーからオブジェクトが更新されます。
オリジン・サーバーが許可した後に必要に応じてリフレッシュ: Oracle Web Cacheで、オブジェクトを失効させ、オリジン・サーバーの許容量に基づいて更新します。オリジン・サーバーに過剰な負荷がかかる場合は、Oracle Web Cacheが失効コンテンツを処理することがあります。オブジェクトをキャッシュに残して無効な状態で表示できる最大期間を「時間制限」フィールドに入力します。
「OK」をクリックして変更を適用します。
Oracle Web Cacheを再起動します。第2.13項を参照してください。
この項では、Oracle Web Cacheのキャッシュ・ルールを構成する方法について説明します。次のトピックが含まれます:
キャッシュ・ルールを作成する前に、まず特定のサイトに対してルールを設定するのか、すべてのサイトに対してグローバルに設定するのかを決定します。サイト固有のキャッシュ・ルールは、グローバル・ルールよりも優先されます。
キャッシュ・デシジョンの詳細は、第6.3項を参照してください。
キャッシュ・ルールを作成するには、次の手順を実行します。
Fusion Middleware Controlで「Webキャッシュ・メンバー」ページにナビゲートします。第2.6.2項を参照してください。
「Webキャッシュ」メニューから、「管理」→「キャッシュ・ルール」を選択します。
「キャッシュ・ルール」ページが表示されます。
新しいルールを作成します。
「サイト固有のキャッシュ・ルール」または「グローバル・キャッシュ・ルール」セクションで、「作成」をクリックします。
「キャッシュ・ルールの作成」ページに「一般」タブが表示されます。
表6-4の説明を参照して、各要素を入力します。
要素の入力時には、「一致条件」セクションで、一致評価の条件として、リクエストのURL式またはレスポンスのMIME
タイプ、あるいはその両方を使用するのかを選択します。一致条件を選択しない場合、Oracle Web CacheはすべてのURLおよびすべてのMIME
タイプとルールを一致させます。
ルールに対するURL式の入力が面倒な場合は、「一致条件」セクションで「MIMEタイプ」オプションを選択します。複雑なURL式のかわりに「MIMEタイプ」オプションを使用する場合の詳細は、第6.4項を参照してください。
変更を適用して「キャッシュ・ルール」ページに戻るには、「OK」をクリックします。この変更を適用するために、「キャッシュ・ルールの作成」ページで「適用」をクリックする必要はありません。
「サイト固有のキャッシュ・ルール」または「グローバル・キャッシュ・ルール」表にキャッシュ・ルールが追加されることに注意してください。
追加の各ルールに対して、ステップ3を繰り返します。
「上に移動」アイコンと「下に移動」アイコンを使用して、ルールをリクエストと照合する順序を変更します。
ルールの順序は重要です。Oracle Web Cacheでは最初に優先度の高いルールが照合されます。
「適用」をクリックして移動を適用します。
「キャッシュ・ルール」ページで、「有効化」をクリックしてルールを有効にします。
「有効化」をクリックしないと、ルールの設定がすべて無視されます。
Oracle Web Cacheを再起動します。第2.13項を参照してください。
表6-4 「キャッシュ・ルール」-「一般」ページ
要素 | 説明 |
---|---|
名前 |
キャッシュ・ルールを一意に識別する文字列を入力します。 |
説明 |
キャッシュ・ルールについて説明するコメントを入力します。 |
有効 |
キャッシュ・ルールを有効にする場合は選択し、ルール定義を失うことなくキャッシュ・ルールを一時的に無効にする場合は選択を解除します。 |
サイト |
このルールを適用するサイトが表示されます。 必要なサイトが見つからない場合は、第2.11.3項の手順に従ってサイトを作成します。 |
キャッシュ |
コンテンツをキャッシュする場合は、このオプションを選択します。リクエストをオリジン・サーバーに転送し、コンテンツをキャッシュしない場合は、このオプションを選択解除します。 |
有効期限 |
リストから、オブジェクトに適用する有効期限ポリシーを選択します。オブジェクトに適した有効期限ポリシーが見つからない場合は、「有効期限ポリシー」リンクをクリックします。 |
圧縮 |
圧縮されたキャッシュ可能およびキャッシュ不可のオブジェクトをブラウザに送信する場合は、このオプションを選択します。このルールで圧縮を有効にするには、サイトでも圧縮を有効にする必要があります。 サイトの圧縮プロパティの設定方法は、第2.11.3項を参照してください。 Oracle Web Cacheでは、圧縮済であることがわかっているいくつかの一般的なファイル・タイプについては、圧縮が自動的に無効になります。GIF、JPEGおよびPNGイメージを含むこのようなファイル・タイプ、または、WinZipやGZIPなどのユーティリティを使用して圧縮されたファイルのコンテンツは、圧縮しないことをお薦めします。これらのファイルを圧縮すると、圧縮の利点を受けることなく、さらにオーバーヘッドが生じます。Oracle Web Cacheで圧縮が自動的に無効になる場合については、第1.2.5項を参照してください。 |
URL一致条件 |
URL式を一致評価の基準にする場合に選択します。
|
MIMEタイプ |
|
HTTPメソッド |
次の中から、1つ以上のHTTPリクエスト・メソッドを選択します。
注意: ご使用のWebサイトで、問合せ文字列が含まれるGETまたはPOSTメソッドが、オリジン・サーバーまたはデータベースに変更を加えるフォームで使用されている場合は、「問合せ文字列を含むGET」または「POST本体式」を選択しないでください。これらのオプションは、フォームが検索フォームで使用されている場合のみ選択してください。 |
必要なリクエスト・パラメータ |
「追加」をクリックし、埋込みURLパラメータまたはPOST本体パラメータとその値を、対応する「パラメータ名」フィールドと「値」フィールド(オプション)に入力します。 注意:
|
クライアントのブラウザからOracle Web Cacheに送信されるリクエストURLと、Oracle Web Cacheでそのリクエストの処理に使用される内部URL式は異なります。Oracle Web Cacheでページ・リクエストが処理されるときに、そのURLの埋込みURLパラメータはアルファベット順に並べ替えられます。一方、キャッシュ・ルールは、埋込みURLパラメータが並べ替えられたURLの内部表現に対してのみ一致します。キャッシュ・ルールを正しく一致させるには、「必要なリクエスト・パラメータ」セクションを使用するか、「URL一致条件」フィールドに埋込みURLパラメータを正規表現構文でアルファベット順に手動で入力します。「必要なリクエスト・パラメータ」セクションを使用する場合、埋込みURLパラメータは自動的に並べ替えられます。
たとえば、次のようなURLがあるとします。
http://my.oracle.com/servlet/page?_pageid=53&_dad=moc&_schema=MOC
「URL一致条件」フィールドに、埋込みURLパラメータの正規表現を手動で並べ替えずに^/servlet/page\?_pageid=53&_dad=moc&_schema=MOC$
と入力した場合、キャッシュ・ルールは、Oracle Web Cacheで使用されるURLの内部表現に一致しません。一致させるには、「URL式」フィールドに、次のように正規表現を入力する必要があります。
^/servlet/page\?_dad=moc&_pageid=53&_schema=MOC$
複数バージョンを持つオブジェクトのキャッシュの詳細は、第6.5.1項を参照してください。
複数バージョンのオブジェクトに対するキャッシュ・ルールを指定するには、次の手順を実行します。
キャッシュに影響するカテゴリCookieを持つサイトの場合は、Oracle Web Cacheが複数バージョンのオブジェクトのキャッシュおよび識別に使用する値を持つカテゴリCookieを指定します。
Fusion Middleware Controlで「Webキャッシュ・メンバー」ページにナビゲートします。第2.6.2項を参照してください。
「Webキャッシュ」メニューから、「管理」→「複数バージョンのCookie」を選択します。
「複数バージョンのCookie」ページが表示されます。
「作成」をクリックします。
「Cookie名」フィールドに、Cookieの名前を入力します。
このCookieが含まれていないバージョンのオブジェクトをキャッシュする場合は、「存在しない場合にキャッシュ」チェック・ボックスを選択します。このオプションを選択すると、Oracle Web Cacheで、このCookieが含まれていないクライアント・リクエストに対してキャッシュのオブジェクトが返されます。このCookieが含まれていないバージョンのオブジェクトをキャッシュしない場合は、オプションの選択を解除したままにします。
「適用」をクリックします。
キャッシュ・ルールを作成します。第6.8.1項を参照してください。
「キャッシュ・ルール」ページの「サイト固有のキャッシュ・ルール」セクションまたは「グローバル・キャッシュ・ルール」セクションで、作成したルールを選択し、「編集」をクリックします。
「キャッシュ・ルールの作成」ページが表示されます。
「マルチ・バージョニング」タブをクリックします。
CookieまたはHTTPリクエスト・ヘッダーに依存する複数バージョンのオブジェクトの場合、CookieまたはHTTPリクエスト・ヘッダーを指定して、Oracle Web Cacheが複数バージョンのオブジェクトをキャッシュして、該当するバージョンのリクエストを送信できるようにします。
Cookieを使用する複数バージョンのオブジェクトの場合、ステップ1で作成したCookieを選択します。
HTTPヘッダーを使用する複数バージョンのオブジェクトの場合、「HTTPリクエスト・ヘッダーごと」セクションで、「選択可能なヘッダー」から1つ以上のヘッダーを選択し、「移動」または「すべて移動」をクリックしてそれらのヘッダーを「選択したヘッダー」リストに移動します。
「OK」をクリックして変更を適用します。
Oracle Web Cacheを再起動します。第2.13項を参照してください。
Oracle Web Cacheが埋込みURLパラメータまたはPOST本体パラメータの値を無視するように構成すると、Oracle Web Cacheは、同じページをリクエストする複数のセッションを1つのキャッシュ・オブジェクトで処理できます。Oracle Web Cacheは、最初のリクエストへのレスポンスをキャッシュし、そのページへの後続のリクエストをこのキャッシュから処理します。
パラメータの値を無視するようにOracle Web Cacheを構成することで、Oracle Web Cacheが1つのキャッシュ・オブジェクトで複数のセッションを処理できるようにする方法は、第6.5.2項を参照してください。
無視するパラメータを指定するには、2つの構成オプションがあります。次が可能です。
すべてのグローバル・キャッシュ・ルールとサイト固有のキャッシュ・ルールに自動的に適用されるグローバル・パラメータを確立します。
サイトのキャッシュ・ルールに自動的に適用されるそのサイト固有のパラメータを指定します。
グローバル・パラメータを確立するには、次の手順を実行します。
Oracle Web Cache Managerのナビゲータ・フレームで、「Origin Servers, Sites, and Load Balancing」→「Site Definitions」を選択します。第2.7.2項を参照してください。
「Site Definitions」ページが表示されます。
「Edit Global URL Parameters to Ignore」をクリックして、すべてのサイトを対象とするグローバル・パラメータを指定します。
「Global URL Parameters to Ignore」ダイアログ・ボックスが表示されます。
「Parameters to Ignore」フィールドに、グローバル・パラメータを指定します。複数のパラメータを指定する場合は、各パラメータをカンマまたはスペースで区切ります。
「Submit」をクリックします。
「Apply Changes」をクリックします。
Oracle Web Cacheを再起動します。第2.13項を参照してください。
サイト固有のキャッシュ・ルールを作成します。第6.8.1項を参照してください。
サイト固有のパラメータを確立するには、次の手順に従います。
Oracle Web Cache Managerのナビゲータ・フレームで、「Origin Servers, Sites, and Load Balancing」→「Site Definitions」を選択します。第2.7.2項を参照してください。
「Site Definitions」ページが表示されます。
サイトを選択し、「Show/Edit Selected」をクリックします。
「Show/Edit Site Definition」ダイアログ・ボックスが表示されます。
「URL Parameters to Ignore」フィールドに、サイト固有のパラメータを指定します。複数のパラメータを指定する場合は、各パラメータをカンマまたはスペースで区切ります。
「Submit」をクリックします。
「Apply Changes」をクリックします。
Oracle Web Cacheを再起動します。第2.13項を参照してください。
サイト固有のキャッシュ・ルールを作成します。第6.8.1項を参照してください。
Oracle Web Cacheでは、デフォルトでHTTPリクエスト・ヘッダーの値が解析されません。Fusion Middleware Controlで、User-Agent
リクエスト・ヘッダー・フィールドに対して「他のヘッダーによる同じセレクタを持つ複数のオブジェクト」が選択されている場合、同じURLのUser-Agent
リクエスト・ヘッダーの値が異なっていると、Oracle Web Cacheでは両方のページが別々にキャッシュされます。たとえば、異なるバージョンのInternet Explorerに対して、あるリクエストではUser-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows)
というHTTPリクエスト・ヘッダーが送信され、別のリクエストではUser-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows; DigExt)
というHTTPリクエスト・ヘッダーが送信された場合、Oracle Web Cacheでは2つの別々のページがキャッシュされます。
このデフォルトの動作をオーバーライドするには、特定のクライアントのUser-Agent
パターン文字列を使用してOracle Web Cacheを構成します。複数のバージョンを持つオブジェクトの中で影響を受けるドキュメントに対して、Oracle Web Cacheはx-Oracle-Mapped-User
リクエスト・ヘッダー・フィールドを追加し、User-Agent
の値全体ではなくこの文字列の値を使用します。
x-Oracle-Mapped-User: MAPPEDUSERAGENT_String
ブラウザ・タイプごとに同じページをキャッシュして表示するようにOracle Web Cacheを構成するには、次の手順を実行します。
第6.8.2項の説明に従って、User-Agent
リクエスト・ヘッダーをサポートするページのキャッシュ・ルールを作成して、User-Agent
ヘッダーを確実に選択します。
次の場所にあるwebcache.xml
をテキスト・エディタで開きます。
(UNIX) ORACLE_INSTANCE/<instance_name>/config/WebCache/<webcache_name> (Windows) ORACLE_INSTANCE\<instance_name>\config\WebCache\<webcache_name>
ブラウザ・タイプごとに、GLOBALCACHINGRULES
要素の次の行に、次のサブ要素を追加します。
<USERAGENTREMAPRULE MATCHSTRING="browser
" MAPPEDUSERAGENT="x-Oracle-Mapped-User-Agent_value
" MAPTYPE="USERAGENT"/>
複数のエントリを入力する場合は、Oracle Web Cacheで一致させる方法に従ってエントリを並べます。これらのルールの順序は、キャッシュ・ルールの優先順位と同じように機能します。
サブ要素の値の入力方法を、表6-5で説明します。
サブ要素 | 説明 |
---|---|
受信リクエスト・ヘッダーとの一致に使用するパターンを入力します。 注意: ワイルド・カード |
|
Oracle Web Cacheによって |
|
|
次のwebcache.xml
ファイルの一部は、User-Agent
の再マッピングを示します。
<USERAGENTREMAPRULE MATCHSTRING="MSIE *" MAPPEDUSERAGENT="MSIE" MAPTYPE="USERAGENT"/> <USERAGENTREMAPRULE MATCHSTRING="Mozilla*" MAPPEDUSERAGENT="MOZ" MAPTYPE="USERAGENT"/>
受信リクエストに一致するルールが存在しない場合、Oracle Web Cacheはデフォルトのマッピングをリクエストに追加します。x-Oracle-Mapped-User-Agent
ヘッダーのデフォルト値はDEFAULT_USER_AGENT
です。
これらのマッピング・ルールは、すべての受信リクエストに対して実行されます。複数のマッピング・ルールを作成すると、パフォーマンスが低下する可能性があります。
ステップ1で作成したキャッシュ・ルールについて、CACHEABILITYRULE
の<MULTIVERSIONHEADERSRULE>
サブ要素を探します。
<MULTIVERSIONHEADERSRULE> <HTTPHEADER NAME="User-Agent"/> </MULTIVERSIONHEADERSRULE>
User-Agent
の値全体ではなくMAPPEDUSERAGENT
文字列の値に一致させるには、ルールのHTTPHEADER
属性のUser-Agent
ヘッダーをx-Oracle-Mapped-User-Agent
に変更します。
<MULTIVERSIONHEADERSRULE> <HTTPHEADER NAME="x-Oracle-Mapped-User-Agent"/> </MULTIVERSIONHEADERSRULE>
webcache.xml
を保存します。
opmnctl
を使用してOracle Web Cacheを再起動します。第2.13.1項を参照してください。
HTTPエラー・レスポンスをキャッシュしてオリジン・サーバーのリソースを節約する方法については、第6.5.3項を参照してください。
エラー・レスポンスのキャッシュ・ルールを作成するには、次の手順を実行します。
キャッシュ・ルールを作成します。第6.8.1項を参照してください。
「キャッシュ・ルール」ページの「サイト固有のキャッシュ・ルール」セクションまたは「グローバル・キャッシュ・ルール」セクションで、作成したルールを選択し、「編集」をクリックします。
「キャッシュ・ルールの作成」ページが表示されます。
「エラー・レスポンス」タブをクリックします。
このルールに対して、Oracle Web Cacheでキャッシュおよび表示するHTTPエラー・コードを選択します。
オリジン・サーバーがHTTPエラー自体を生成するようにします。
「OK」をクリックして変更を適用します。
Oracle Web Cacheを再起動します。第2.13項を参照してください。
Oracle Web Cacheで、セッションCookie、埋込みURLパラメータまたはPOST本体パラメータが存在するリクエストまたは存在しないリクエストが処理される方法については、第6.5.4項を参照してください。
Oracle Web Cacheによるセッション関連ページの送信方法を指定するには、次の手順を実行します。
「Webキャッシュ」メニューから、「管理」→「セッション構成」を選択します。
「セッション定義」ページが表示されます。
「セッション定義」表でセッション定義を作成します。第2.12項を参照してください。
セッション・ポリシーの設定を指定します。
「セッション・ポリシー構成」セクションで、「作成」をクリックします。
表に新しい行が表示されます。
「セッション名」リストから、ステップ2で作成したセッションを選択します。
「キャッシュ」列で、Oracle Web CacheがCookieまたはパラメータを使用しないオブジェクトのバージョンをキャッシュする場合は「セッションを使用しない」チェック・ボックスを選択します。Oracle Web Cacheがセッション情報を持たないリクエストのキャッシュからオブジェクトを送信しない場合は、「いいえ」を選択します。
「キャッシュ」列で、Oracle Web CacheがCookieまたはパラメータを使用するオブジェクトのバージョンをキャッシュする場合は「セッションを使用」チェック・ボックスを選択します。
「デフォルト値の置換」列で、Oracle Web Cacheがオブジェクトの1つのバージョンのみキャッシュする場合は、このチェック・ボックスを選択します。Cookieまたはパラメータを持たないリクエストでは、デフォルト値が使用されます。Oracle Web Cacheがオブジェクトの2つの異なるバージョンをキャッシュする場合は、このチェック・ボックスを選択解除します。Oracle Web Cacheによって、Cookieまたはパラメータをサポートしているリクエストに対して1つのバージョンが返され、Cookieまたはパラメータをサポートしないリクエストに対してもう1つのバージョンが返されます。
キャッシュ・ルールを作成します。第6.8.1項を参照してください。
次の手順を実行して、キャッシュ・ルールにセッション・ポリシーを関連付けます。
Oracle Web Cacheを再起動します。第2.13項を参照してください。
HTMLハイパーリンク・タグのセッションを、セッションCookie、埋込みURLパラメータまたはPOST本体パラメータから取得したセッション値で置換するようにOracle Web Cacheを構成できます。セッション・エンコードされたURL内のセッション・パラメータ値が異なっていても、1つのオブジェクトが複数のセッション用にキャッシュされるようにOracle Web Cacheを構成する方法は、第6.5.5項を参照してください。
セッション・エンコードされたURLのセッションの値を置換するには、次のように設定します。
Fusion Middleware Controlで「Webキャッシュ・メンバー」ページにナビゲートします。第2.6.2項を参照してください。
「Webキャッシュ」メニューから、「管理」→「セッション構成」を選択します。
「セッション定義」ページが表示されます。
「セッション定義」表でセッション定義を作成します。第2.12項を参照してください。
「デフォルト値」フィールドにデータを入力するときには、埋込みURLパラメータの値に使用されるデフォルトの文字列を入力します。
Oracle Web Cacheでは、埋込みURLパラメータの値が含まれないリクエストに対して、「デフォルト値」フィールドに入力した値が使用されます。このようなリクエストの場合、Oracle Web Cacheによって値がデフォルトの文字列に置換されます。文字列のデフォルトはdefaultです。たとえば、次の<A HREF=...>
には、値を含まないsession_ID
パラメータが含まれています。
<A HREF="https://oraclestore.oracle.com/OA_HTML/ibeCCtpSctDspRte.jsp?section=11886&session_ID=">Master Index</A>
文字列をdefaultに設定すると、Oracle Web Cacheによって値がdefault
に置換されます。
<A HREF="https://oraclestore.oracle.com/OA_HTML/ibeCCtpSctDspRte.jsp?section=11886&session_ID=default">Master Index</A>
キャッシュ・ルールを作成します。第6.8.1項を参照してください。
「キャッシュ・ルール」ページの「サイト固有のキャッシュ・ルール」セクションまたは「グローバル・キャッシュ・ルール」セクションで、作成したルールを選択し、「編集」をクリックします。
「キャッシュ・ルールの作成」ページが表示されます。
「セッション」タブをクリックします。
「セッション・エンコードされたURLに対する処理」をクリックします。
「OK」をクリックして変更を適用します。
Oracle Web Cacheを再起動します。第2.13項を参照してください。
一部のWebサイトでは、ユーザーがページ間を移動する間、セッションを使用する必要があります。セッション要件を維持するには、それらのページ用にセッション・キャッシュ・ルールを作成します。これにより、セッションを持たないリクエストは必ずオリジン・サーバーに転送されます。
通常セッションの確立を必要とする一般的なサイトのエントリ・ページ(/
など)は、セッションを確立するため、セッションを持っていないすべての新規ユーザーについてキャッシュ不可になります。セッションの確立を維持したままこれらのページをキャッシュするには、ご使用のアプリケーションに次のような変更を加えます。
実際のエントリ・ページにリダイレクトする、エントリURL(/
など)用の空白のページを作成します。
セッションCookieを持たない状態で空白のページがリクエストされた場合に、オリジン・サーバーによってセッションを作成するよう構成します。
第6.8.6項の説明に従って、実際のエントリ・ページおよび空白のページ用のセッション・キャッシュ・ルールを作成し、「キャッシュする」および「キャッシュしない」の両方のオプションをクリックします。
この構成により、エントリURLに対する最初のユーザー・リクエストはすべて、まず、最小限のリソースのみで生成される空白のページに進みます。クライアントは、Webアプリケーション・サーバーからレスポンスおよびセッションの確立を受信します。その後の、エントリ・ページに対するリダイレクトされたリクエストにはセッションが関連付けられ、エントリ・ページをキャッシュで処理することが可能になります。
セッションを必要とするページのセッションCookieを、Javascriptを使用して設定する方法でも解決できます。
セッションCookieを設定するJavascriptがない場合は、作成します。
セッションを必要とする各ページにJavascriptを追加します。
第6.8.1項および第6.8.6項の説明に従って、Javascriptおよびセッション・ページのキャッシュ・ルールを作成します。
注意: Javascriptによるソリューションを使用すると、セッションを必要とするページについて、セッション・キャッシュ・ルールを作成する必要はありません。 |
Fusion Middleware Controlでは、構成されているキャッシュ・ルールの有効性を評価するための統計を表示できます。
キャッシュ・ルールの統計を表示するには、次の手順を実行します。
Fusion Middleware Controlで「Webキャッシュ・メンバー」ページにナビゲートします。第2.6.2項を参照してください。
「Webキャッシュ」メニューから、「管理」→「キャッシュ・ルール」を選択します。
「キャッシュ・ルール」ページが表示されます。
右端までスクロールして、キャッシュ・ルールの統計を表示します。
マルチ・バージョニング: このキャッシュ・ルールに、複数バージョンを持つリクエストの設定が含まれているかどうかを示します。
セッション: このキャッシュ・ルールに、ユーザー・セッション情報を含むCookie、埋込みURLパラメータまたはPOST本体パラメータを使用するリクエストの設定が含まれているかどうかを示します。
エラー・レスポンス: このキャッシュ・ルールに、HTTPエラー・レスポンスを使用するリクエストの設定が含まれているかどうかを示します。
一致: キャッシュ・ルールと一致したリクエストの数が表示されます。
Oracle Web Cacheによってキャッシュされたオブジェクトの表示方法は、第8.2項を参照してください。
アプリケーション開発者は、Fusion Middleware Controlで設定するキャッシュ・ルールに加えて、またはその代替として、多くのキャッシュ属性をHTTPレスポンス・メッセージのヘッダーに格納することもできます。この機能により、Webアプリケーション・サーバーがFusion Middleware Controlインタフェースでの設定をオーバーライドしたり、サード・パーティ製キャッシュでOracle Web Cacheのキャッシュ属性を使用したりすることが可能になります。次の属性を除き、第6.8項に記載されているすべての属性がサポートされています。
セッション・キャッシュ・ルール
HTTPエラー・レスポンスのキャッシュ・ルール
この機能を使用するには、次の項の説明に従って、HTTPレスポンスにSurrogate-Control
レスポンス・ヘッダー・フィールドを設定します。
Oracle Web CacheがSurrogate-Control
レスポンス・ヘッダーのキャッシュ属性を使用する方法、およびOracle Web Cache Managerがキャッシュへのデータ格納を決定する方法は、第6.1項を参照してください。
Surrogate-Control
レスポンス・ヘッダー・フィールドによって、アプリケーション開発者は、オブジェクトのキャッシュ属性を指定できます。このレスポンス・ヘッダー・フィールドを使用すると、管理インタフェースであるFusion Middleware ControlまたはOracle Web Cache Managerによって構成されたキャッシュ・ルールをWebアプリケーション・サーバー側でオーバーライドできます。
Surrogate-Control
レスポンス・ヘッダー・フィールドは次の構文をサポートします。
Surrogate-Control:[content=content_type, content_type,..] [no-store][max-age=expiration_time
[+
removal_time
]
] [vary=headers(header
header
...)][cookie(cookie_name
cookie_name
...)] [compress=yes|no]
表6-6に、サポートされている制御ディレクティブを示します。
表6-6 Surrogate-Controlの制御ディレクティブ
制御ディレクティブ | 説明 |
---|---|
|
必須の処理の種類を指定します。
各処理バージョンに対してサポートされるESIタグの詳細は、第11章「ESI言語タグによる動的コンテンツのキャッシュ」を参照してください。 |
Oracle Web Cacheでオブジェクトをキャッシュしない場合に指定します。 |
|
複数バージョンのオブジェクトをキャッシュして識別するようにOracle Web Cacheに指示するために、HTTPリクエスト・ヘッダーまたはCookieを指定します。次の書式を使用します。
/fは、HTTPリクエスト・ヘッダーまたはCookieが存在した場合にのみオブジェクトのバージョンをキャッシュするようにOracle Web Cacheに指示する場合に指定します。HTTPリクエスト・ヘッダーまたはCookieが存在するかどうかに関係なくオブジェクトのバージョンをキャッシュするようにOracle Web Cacheに指示するには、 使用方法:
|
|
Oracle Web Cacheで、圧縮されたキャッシュ可能およびキャッシュ不可のオブジェクトをすべてのブラウザ・タイプに送信する場合は この制御ディレクティブではブラウザ・タイプを指定することはできません。 Oracle Web Cacheが自動的に圧縮するものと圧縮しないものの詳細は、第1.2.5項を参照してください。 |
|
Oracle Web Cacheでオブジェクトをキャッシュする場合に指定します。 オブジェクトがキャッシュに入れられてから期限切れになるまでの秒数を指定します。オプションで、期限切れ後のオブジェクトを削除するまでの秒数を指定します。次の書式を使用します。
使用方法:
|
使用方法
制御ディレクティブには大文字と小文字の区別があります。
content="ORAESI/9.0.4"
、content="ESI-Inline/1.0"
、content="ESI-INV/1.0"
、content="ESI/1.0"
を、content="webcache/1.0"
と同時に使用することはできません。
Edgeアーキテクチャ仕様についてはhttp://www.esi.org/spec.html
を参照してください。これには、Surrogate-Control
レスポンス・ヘッダーに関する仕様情報が含まれます。
次の例では、Surrogate-Control
レスポンス・ヘッダー・フィールドにより、オブジェクトがキャッシュに入ってから30秒後に期限切れにし、期限切れ後60秒で削除するよう指定します。また、ESIタグが含まれているオブジェクトを処理するよう指定しています。
Surrogate-Control: max-age=30+60, content="ORAESI/9.0.4"
次の例では、Surrogate-Control
レスポンス・ヘッダー・フィールドにより、オブジェクトをキャッシュしないよう指定します。
Surrogate-Control: no-store
次の例では、Surrogate-Control
レスポンス・ヘッダー・フィールドは、content
制御ディレクティブでESI処理を指定します。vary
制御ディレクティブは、リクエストにHTTP Accept
リクエスト・ヘッダーが含まれているかどうかに関係なく、HTTP Accept
リクエスト・ヘッダー値に基づいて、複数バージョンのオブジェクトのバージョンをキャッシュすることを指定します。
Surrogate-Control: content="ORAESI/9.0.4", vary=headers(Accept)
次の同様の例では、Surrogate-Control
レスポンス・ヘッダー・フィールドは、content
制御ディレクティブでESI処理を指定します。vary
制御ディレクティブは、リクエストにAccept
およびMyCustomHeader
ヘッダーや、news
およびsports
のCookieが含まれている場合にのみ、複数バージョンのオブジェクトのバージョンをキャッシュすることを指定します。
Surrogate-Control: content="ORAESI/9.0.4", vary=headers(Accept/f MyCustomHeader/f);cookies(news/f sports/f)