クラス CacheControl
HTTP レスポンスに Cache-Control ディレクティブを追加すると、Web アプリケーションとやり取りするときのクライアントエクスペリエンスを大幅に改善できます。このビルダーは、いくつかのユースケースを念頭に置いて、レスポンスディレクティブのみを使用して、説得力のある "Cache-Control" ヘッダーを作成します。
- CacheControl cc = CacheControl.maxAge(1, TimeUnit.HOURS)で HTTP レスポンスをキャッシュすると、- Cache-Control: "max-age=3600"になります。
- CacheControl cc = CacheControl.noStore()でキャッシュを防止すると、- Cache-Control: "no-store"になります。
- CacheControl cc = CacheControl.maxAge(1, TimeUnit.HOURS).noTransform().cachePublic()のような高度なケースは- Cache-Control: "max-age=3600, no-transform, public"になります
効率的にするために、Cache-Control ヘッダーは、"Last-Modified" ヘッダーや "ETag" ヘッダーなどの HTTP バリデーターに沿って記述する必要があります。
- 導入:
- 4.2
- 作成者:
- Brian Clozel, Juergen Hoeller
- 関連事項:
- コンストラクターの概要コンストラクター
- メソッドのサマリー修飾子と型メソッド説明"private" ディレクティブを追加します。"public" ディレクティブを追加します。- static CacheControl- empty()空のディレクティブを返します。存在する場合、"Cache-Control" ヘッダー値を返します。「不変」ディレクティブを追加します。- static CacheControl- maxAge- (long maxAge, TimeUnitSE unit) "max-age =" ディレクティブを追加します。- static CacheControl- maxAge- (DurationSE maxAge) "max-age =" ディレクティブを追加します。"must-revalidate" ディレクティブを追加します。- static CacheControl- noCache()"no-cache" ディレクティブを追加します。- static CacheControl- noStore()"no-store" ディレクティブを追加します。"no-transform" ディレクティブを追加します。"proxy-revalidate" ディレクティブを追加します。- sMaxAge- (long sMaxAge, TimeUnitSE unit) "s-maxage" ディレクティブを追加します。- sMaxAge- (DurationSE sMaxAge) "s-maxage" ディレクティブを追加します。- staleIfError- (long staleIfError, TimeUnitSE unit) "stale-if-error" ディレクティブを追加します。- staleIfError- (DurationSE staleIfError) "stale-if-error" ディレクティブを追加します。- staleWhileRevalidate- (long staleWhileRevalidate, TimeUnitSE unit) "stale-while-revalidate" ディレクティブを追加します。- staleWhileRevalidate- (DurationSE staleWhileRevalidate) "stale-while-revalidate" ディレクティブを追加します。- toString()
- コンストラクターの詳細- CacheControlprotected CacheControl()空の CacheControl インスタンスを作成します。- 関連事項:
 
 
- メソッドの詳細- empty空のディレクティブを返します。- これは、"max-age"、"no-cache"、"no-store" なしで他のオプションのディレクティブを使用するのに適しています。 - 戻り値:
- this、メソッドの連鎖を容易にする
 
- maxAge"max-age =" ディレクティブを追加します。- このディレクティブは、設定された時間内にリソースが変更されないことを知っているため、リソースをパブリックにキャッシュするのに適しています。共有キャッシュによってリソースをキャッシュ( - cachePrivate())または変換(- noTransform())しない場合に備えて、追加のディレクティブを使用することもできます。- キャッシュされたレスポンスが古くなっても(つまり、"max-age" の遅延が渡されても)キャッシュが再利用しないようにするには、"must-revalidate" ディレクティブを設定する必要があります( - mustRevalidate()- パラメーター:
- maxAge- レスポンスがキャッシュされる最大時間
- unit-- maxAge引数の時間単位
- 戻り値:
- this、メソッドの連鎖を容易にする
- 関連事項:
 
- maxAge"max-age =" ディレクティブを追加します。- このディレクティブは、設定された時間内にリソースが変更されないことを知っているため、リソースをパブリックにキャッシュするのに適しています。共有キャッシュによってリソースをキャッシュ( - cachePrivate())または変換(- noTransform())しない場合に備えて、追加のディレクティブを使用することもできます。- キャッシュされたレスポンスが古くなっても(つまり、"max-age" の遅延が渡されても)キャッシュが再利用しないようにするには、"must-revalidate" ディレクティブを設定する必要があります( - mustRevalidate()- パラメーター:
- maxAge- レスポンスがキャッシュされる最大時間
- 戻り値:
- this、メソッドの連鎖を容易にする
- 導入:
- 5.2
- 関連事項:
 
- noCache"no-cache" ディレクティブを追加します。- このディレクティブは、クライアントがサーバーでレスポンスを再検証した場合にのみレスポンスを再利用できることをキャッシュに伝えるのに適しています。このディレクティブはキャッシュを完全に無効にするわけではなく、クライアントが条件付きリクエスト("ETag"、"If-Modified-Since" ヘッダー付き)を送信し、サーバーが "304-Not Modified" ステータスでレスポンスする可能性があります。 - キャッシングを無効にし、リクエスト / レスポンスの交換を最小限に抑えるには、 - #noCache()の代わりに- noStore()ディレクティブを使用する必要があります。- 戻り値:
- this、メソッドの連鎖を容易にする
- 関連事項:
 
- noStore"no-store" ディレクティブを追加します。- このディレクティブは、キャッシュ(ブラウザーとプロキシ)がレスポンスのコンテンツをキャッシュしないようにするのに適しています。 - 戻り値:
- this、メソッドの連鎖を容易にする
- 関連事項:
 
- mustRevalidate"must-revalidate" ディレクティブを追加します。- このディレクティブは、古くなったら、キャッシュがレスポンスを使用して、元のサーバーでの検証に成功せずに後続のリクエストを満たすことはできないことを示します。 - 戻り値:
- this、メソッドの連鎖を容易にする
- 関連事項:
 
- noTransform"no-transform" ディレクティブを追加します。- このディレクティブは、仲介者(キャッシュなど)がレスポンスコンテンツを変換しないことを示します。これは、キャッシュと CDN がレスポンスコンテンツを自動的に gzip したり最適化したりしないようにできます。 - 戻り値:
- this、メソッドの連鎖を容易にする
- 関連事項:
 
- cachePublic"public" ディレクティブを追加します。- このディレクティブは、レスポンスが通常はキャッシュ不可またはプライベートキャッシュ内でのみキャッシュ可能であっても、キャッシュがレスポンスを格納できることを示します。 - 戻り値:
- this、メソッドの連鎖を容易にする
- 関連事項:
 
- cachePrivate"private" ディレクティブを追加します。- このディレクティブは、レスポンスメッセージが単一のユーザーを対象としており、共有キャッシュによって格納されてはならないことを示します。 - 戻り値:
- this、メソッドの連鎖を容易にする
- 関連事項:
 
- proxyRevalidate"proxy-revalidate" ディレクティブを追加します。- このディレクティブは、プライベートキャッシュ(つまり、ブラウザー、HTTP クライアント)には適用されないことを除いて、「必須の修正」ディレクティブと同じ意味です。 - 戻り値:
- this、メソッドの連鎖を容易にする
- 関連事項:
 
- sMaxAge"s-maxage" ディレクティブを追加します。- このディレクティブは、共有キャッシュ内で、このディレクティブによって指定された最大存続期間が他のディレクティブによって指定された最大存続期間をオーバーライドすることを示します。 - パラメーター:
- sMaxAge- レスポンスがキャッシュされる最大時間
- unit-- sMaxAge引数の時間単位
- 戻り値:
- this、メソッドの連鎖を容易にする
- 関連事項:
 
- sMaxAge"s-maxage" ディレクティブを追加します。- このディレクティブは、共有キャッシュ内で、このディレクティブによって指定された最大存続期間が他のディレクティブによって指定された最大存続期間をオーバーライドすることを示します。 - パラメーター:
- sMaxAge- レスポンスがキャッシュされる最大時間
- 戻り値:
- this、メソッドの連鎖を容易にする
- 導入:
- 5.2
- 関連事項:
 
- staleWhileRevalidate"stale-while-revalidate" ディレクティブを追加します。- このディレクティブは、指定された秒数まで、キャッシュが古くなった後に表示されるレスポンスをキャッシュが提供できることを示します。この拡張機能が存在するためにキャッシュされたレスポンスが古い状態で提供される場合、キャッシュは古いレスポンスを提供しながら(つまり、ブロックせずに)再検証を試行する必要があります(SHOULD)。 - パラメーター:
- staleWhileRevalidate- 再検証中にレスポンスが使用される最大時間
- unit-- staleWhileRevalidate引数の時間単位
- 戻り値:
- this、メソッドの連鎖を容易にする
- 関連事項:
 
- staleWhileRevalidate"stale-while-revalidate" ディレクティブを追加します。- このディレクティブは、指定された秒数まで、キャッシュが古くなった後に表示されるレスポンスをキャッシュが提供できることを示します。この拡張機能が存在するためにキャッシュされたレスポンスが古い状態で提供される場合、キャッシュは古いレスポンスを提供しながら(つまり、ブロックせずに)再検証を試行する必要があります(SHOULD)。 - パラメーター:
- staleWhileRevalidate- 再検証中にレスポンスが使用される最大時間
- 戻り値:
- this、メソッドの連鎖を容易にする
- 導入:
- 5.2
- 関連事項:
 
- staleIfError"stale-if-error" ディレクティブを追加します。- このディレクティブは、エラーが発生した場合、他の鮮度情報に関係なく、キャッシュされた古いレスポンスを使用してリクエストを満たすことができることを示します。 - パラメーター:
- staleIfError- エラーが発生したときにレスポンスが使用される最大時間
- unit-- staleIfError引数の時間単位
- 戻り値:
- this、メソッドの連鎖を容易にする
- 関連事項:
 
- staleIfError"stale-if-error" ディレクティブを追加します。- このディレクティブは、エラーが発生した場合、他の鮮度情報に関係なく、キャッシュされた古いレスポンスを使用してリクエストを満たすことができることを示します。 - パラメーター:
- staleIfError- エラーが発生したときにレスポンスが使用される最大時間
- 戻り値:
- this、メソッドの連鎖を容易にする
- 導入:
- 5.2
- 関連事項:
 
- immutable「不変」ディレクティブを追加します。- このディレクティブは、オリジンサーバーがレスポンスの鮮度の有効期間中にそのリソースの表現を更新しないことを示します。実際の鮮度の有効期間を強制するために、 - max-ageディレクティブを追加することを強くお勧めします。- 戻り値:
- this、メソッドの連鎖を容易にする
- 導入:
- 6.0.5
- 関連事項:
 
- getHeaderValue存在する場合、"Cache-Control" ヘッダー値を返します。- 戻り値:
-  ヘッダー値、またはディレクティブが追加されなかった場合は null
 
- toString