パッケージ org.springframework.http

クラス CacheControl

java.lang.ObjectSE
org.springframework.http.CacheControl

public class CacheControl extends ObjectSE
"Cache-Control" HTTP レスポンスヘッダーを作成するためのビルダー。

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
関連事項:
  • コンストラクターの詳細

    • CacheControl

      protected CacheControl()
      空の CacheControl インスタンスを作成します。
      関連事項:
  • メソッドの詳細

    • empty

      public static CacheControl empty()
      空のディレクティブを返します。

      これは、"max-age"、"no-cache"、"no-store" なしで他のオプションのディレクティブを使用するのに適しています。

      戻り値:
      this、メソッドの連鎖を容易にする
    • maxAge

      public static CacheControl maxAge(long maxAge, TimeUnitSE unit)
      "max-age =" ディレクティブを追加します。

      このディレクティブは、設定された時間内にリソースが変更されないことを知っているため、リソースをパブリックにキャッシュするのに適しています。共有キャッシュによってリソースをキャッシュ(cachePrivate())または変換(noTransform())しない場合に備えて、追加のディレクティブを使用することもできます。

      キャッシュされたレスポンスが古くなっても(つまり、"max-age" の遅延が渡されても)キャッシュが再利用しないようにするには、"must-revalidate" ディレクティブを設定する必要があります(mustRevalidate()

      パラメーター:
      maxAge - レスポンスがキャッシュされる最大時間
      unit - maxAge 引数の時間単位
      戻り値:
      this、メソッドの連鎖を容易にする
      関連事項:
    • maxAge

      public static CacheControl maxAge(DurationSE maxAge)
      "max-age =" ディレクティブを追加します。

      このディレクティブは、設定された時間内にリソースが変更されないことを知っているため、リソースをパブリックにキャッシュするのに適しています。共有キャッシュによってリソースをキャッシュ(cachePrivate())または変換(noTransform())しない場合に備えて、追加のディレクティブを使用することもできます。

      キャッシュされたレスポンスが古くなっても(つまり、"max-age" の遅延が渡されても)キャッシュが再利用しないようにするには、"must-revalidate" ディレクティブを設定する必要があります(mustRevalidate()

      パラメーター:
      maxAge - レスポンスがキャッシュされる最大時間
      戻り値:
      this、メソッドの連鎖を容易にする
      導入:
      5.2
      関連事項:
    • noCache

      public static CacheControl noCache()
      "no-cache" ディレクティブを追加します。

      このディレクティブは、クライアントがサーバーでレスポンスを再検証した場合にのみレスポンスを再利用できることをキャッシュに伝えるのに適しています。このディレクティブはキャッシュを完全に無効にするわけではなく、クライアントが条件付きリクエスト("ETag"、"If-Modified-Since" ヘッダー付き)を送信し、サーバーが "304-Not Modified" ステータスでレスポンスする可能性があります。

      キャッシングを無効にし、リクエスト / レスポンスの交換を最小限に抑えるには、#noCache() の代わりに noStore() ディレクティブを使用する必要があります。

      戻り値:
      this、メソッドの連鎖を容易にする
      関連事項:
    • noStore

      public static CacheControl noStore()
      "no-store" ディレクティブを追加します。

      このディレクティブは、キャッシュ(ブラウザーとプロキシ)がレスポンスのコンテンツをキャッシュしないようにするのに適しています。

      戻り値:
      this、メソッドの連鎖を容易にする
      関連事項:
    • mustRevalidate

      public CacheControl mustRevalidate()
      "must-revalidate" ディレクティブを追加します。

      このディレクティブは、古くなったら、キャッシュがレスポンスを使用して、元のサーバーでの検証に成功せずに後続のリクエストを満たすことはできないことを示します。

      戻り値:
      this、メソッドの連鎖を容易にする
      関連事項:
    • noTransform

      public CacheControl noTransform()
      "no-transform" ディレクティブを追加します。

      このディレクティブは、仲介者(キャッシュなど)がレスポンスコンテンツを変換しないことを示します。これは、キャッシュと CDN がレスポンスコンテンツを自動的に gzip したり最適化したりしないようにできます。

      戻り値:
      this、メソッドの連鎖を容易にする
      関連事項:
    • cachePublic

      public CacheControl cachePublic()
      "public" ディレクティブを追加します。

      このディレクティブは、レスポンスが通常はキャッシュ不可またはプライベートキャッシュ内でのみキャッシュ可能であっても、キャッシュがレスポンスを格納できることを示します。

      戻り値:
      this、メソッドの連鎖を容易にする
      関連事項:
    • cachePrivate

      public CacheControl cachePrivate()
      "private" ディレクティブを追加します。

      このディレクティブは、レスポンスメッセージが単一のユーザーを対象としており、共有キャッシュによって格納されてはならないことを示します。

      戻り値:
      this、メソッドの連鎖を容易にする
      関連事項:
    • proxyRevalidate

      public CacheControl proxyRevalidate()
      "proxy-revalidate" ディレクティブを追加します。

      このディレクティブは、プライベートキャッシュ(つまり、ブラウザー、HTTP クライアント)には適用されないことを除いて、「必須の修正」ディレクティブと同じ意味です。

      戻り値:
      this、メソッドの連鎖を容易にする
      関連事項:
    • sMaxAge

      public CacheControl sMaxAge(long sMaxAge, TimeUnitSE unit)
      "s-maxage" ディレクティブを追加します。

      このディレクティブは、共有キャッシュ内で、このディレクティブによって指定された最大存続期間が他のディレクティブによって指定された最大存続期間をオーバーライドすることを示します。

      パラメーター:
      sMaxAge - レスポンスがキャッシュされる最大時間
      unit - sMaxAge 引数の時間単位
      戻り値:
      this、メソッドの連鎖を容易にする
      関連事項:
    • sMaxAge

      public CacheControl sMaxAge(DurationSE sMaxAge)
      "s-maxage" ディレクティブを追加します。

      このディレクティブは、共有キャッシュ内で、このディレクティブによって指定された最大存続期間が他のディレクティブによって指定された最大存続期間をオーバーライドすることを示します。

      パラメーター:
      sMaxAge - レスポンスがキャッシュされる最大時間
      戻り値:
      this、メソッドの連鎖を容易にする
      導入:
      5.2
      関連事項:
    • staleWhileRevalidate

      public CacheControl staleWhileRevalidate(long staleWhileRevalidate, TimeUnitSE unit)
      "stale-while-revalidate" ディレクティブを追加します。

      このディレクティブは、指定された秒数まで、キャッシュが古くなった後に表示されるレスポンスをキャッシュが提供できることを示します。この拡張機能が存在するためにキャッシュされたレスポンスが古い状態で提供される場合、キャッシュは古いレスポンスを提供しながら(つまり、ブロックせずに)再検証を試行する必要があります(SHOULD)。

      パラメーター:
      staleWhileRevalidate - 再検証中にレスポンスが使用される最大時間
      unit - staleWhileRevalidate 引数の時間単位
      戻り値:
      this、メソッドの連鎖を容易にする
      関連事項:
    • staleWhileRevalidate

      public CacheControl staleWhileRevalidate(DurationSE staleWhileRevalidate)
      "stale-while-revalidate" ディレクティブを追加します。

      このディレクティブは、指定された秒数まで、キャッシュが古くなった後に表示されるレスポンスをキャッシュが提供できることを示します。この拡張機能が存在するためにキャッシュされたレスポンスが古い状態で提供される場合、キャッシュは古いレスポンスを提供しながら(つまり、ブロックせずに)再検証を試行する必要があります(SHOULD)。

      パラメーター:
      staleWhileRevalidate - 再検証中にレスポンスが使用される最大時間
      戻り値:
      this、メソッドの連鎖を容易にする
      導入:
      5.2
      関連事項:
    • staleIfError

      public CacheControl staleIfError(long staleIfError, TimeUnitSE unit)
      "stale-if-error" ディレクティブを追加します。

      このディレクティブは、エラーが発生した場合、他の鮮度情報に関係なく、キャッシュされた古いレスポンスを使用してリクエストを満たすことができることを示します。

      パラメーター:
      staleIfError - エラーが発生したときにレスポンスが使用される最大時間
      unit - staleIfError 引数の時間単位
      戻り値:
      this、メソッドの連鎖を容易にする
      関連事項:
    • staleIfError

      public CacheControl staleIfError(DurationSE staleIfError)
      "stale-if-error" ディレクティブを追加します。

      このディレクティブは、エラーが発生した場合、他の鮮度情報に関係なく、キャッシュされた古いレスポンスを使用してリクエストを満たすことができることを示します。

      パラメーター:
      staleIfError - エラーが発生したときにレスポンスが使用される最大時間
      戻り値:
      this、メソッドの連鎖を容易にする
      導入:
      5.2
      関連事項:
    • immutable

      public CacheControl immutable()
      「不変」ディレクティブを追加します。

      このディレクティブは、オリジンサーバーがレスポンスの鮮度の有効期間中にそのリソースの表現を更新しないことを示します。実際の鮮度の有効期間を強制するために、max-age ディレクティブを追加することを強くお勧めします。

      戻り値:
      this、メソッドの連鎖を容易にする
      導入:
      6.0.5
      関連事項:
    • getHeaderValue

      @Nullable public StringSE getHeaderValue()
      存在する場合、"Cache-Control" ヘッダー値を返します。
      戻り値:
      ヘッダー値、またはディレクティブが追加されなかった場合は null 
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString