Class CacheControl


  • public final class CacheControl
    extends Object
    A Cache-Control header with cache directives from a server or client. These directives set policy on what responses can be stored, and which requests can be satisfied by those stored responses.

    See RFC 2616, 14.9.

    • Field Detail

      • FORCE_NETWORK

        public static final CacheControl FORCE_NETWORK
        Cache control request directives that require network validation of responses. Note that such requests may be assisted by the cache via conditional GET requests.
      • FORCE_CACHE

        public static final CacheControl FORCE_CACHE
        Cache control request directives that uses the cache only, even if the cached response is stale. If the response isn't available in the cache or requires server validation, the call will fail with a 504 Unsatisfiable Request.
    • Method Detail

      • noCache

        public boolean noCache()
        In a response, this field's name "no-cache" is misleading. It doesn't prevent us from caching the response; it only means we have to validate the response with the origin server before returning it. We can do this with a conditional GET.

        In a request, it means do not use a cache to satisfy the request.

      • noStore

        public boolean noStore()
        If true, this response should not be cached.
      • maxAgeSeconds

        public int maxAgeSeconds()
        The duration past the response's served date that it can be served without validation.
      • sMaxAgeSeconds

        public int sMaxAgeSeconds()
        The "s-maxage" directive is the max age for shared caches. Not to be confused with "max-age" for non-shared caches, As in Firefox and Chrome, this directive is not honored by this cache.
      • isPrivate

        public boolean isPrivate()
      • isPublic

        public boolean isPublic()
      • mustRevalidate

        public boolean mustRevalidate()
      • maxStaleSeconds

        public int maxStaleSeconds()
      • minFreshSeconds

        public int minFreshSeconds()
      • onlyIfCached

        public boolean onlyIfCached()
        This field's name "only-if-cached" is misleading. It actually means "do not use the network". It is set by a client who only wants to make a request if it can be fully satisfied by the cache. Cached responses that would require validation (ie. conditional gets) are not permitted if this header is set.
      • noTransform

        public boolean noTransform()
      • parse

        public static CacheControl parse​(Headers headers)
        Returns the cache directives of headers. This honors both Cache-Control and Pragma headers if they are present.
      • toString

        public String toString()
        Description copied from class: Object
        Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:
           getClass().getName() + '@' + Integer.toHexString(hashCode())

        See Writing a useful toString method if you intend implementing your own toString method.

        Overrides:
        toString in class Object
        Returns:
        a printable representation of this object.