Class ResponseCachingPolicy

java.lang.Object
org.apache.hc.client5.http.impl.cache.ResponseCachingPolicy

class ResponseCachingPolicy extends Object
  • Field Details

    • AUTH_CACHEABLE_PARAMS

      private static final String[] AUTH_CACHEABLE_PARAMS
    • CACHEABLE_STATUS_CODES

      private static final Set<Integer> CACHEABLE_STATUS_CODES
    • LOG

      private static final org.slf4j.Logger LOG
    • maxObjectSizeBytes

      private final long maxObjectSizeBytes
    • sharedCache

      private final boolean sharedCache
    • neverCache1_0ResponsesWithQueryString

      private final boolean neverCache1_0ResponsesWithQueryString
    • uncacheableStatusCodes

      private final Set<Integer> uncacheableStatusCodes
  • Constructor Details

    • ResponseCachingPolicy

      public ResponseCachingPolicy(long maxObjectSizeBytes, boolean sharedCache, boolean neverCache1_0ResponsesWithQueryString, boolean allow303Caching)
      Define a cache policy that limits the size of things that should be stored in the cache to a maximum of HttpResponse bytes in size.
      Parameters:
      maxObjectSizeBytes - the size to limit items into the cache
      sharedCache - whether to behave as a shared cache (true) or a non-shared/private cache (false)
      neverCache1_0ResponsesWithQueryString - true to never cache HTTP 1.0 responses with a query string, false to cache if explicit cache headers are found.
      allow303Caching - if this policy is permitted to cache 303 response
  • Method Details

    • isResponseCacheable

      public boolean isResponseCacheable(String httpMethod, org.apache.hc.core5.http.HttpResponse response)
      Determines if an HttpResponse can be cached.
      Parameters:
      httpMethod - What type of request was this, a GET, PUT, other?
      response - The origin response
      Returns:
      true if response is cacheable
    • unknownStatusCode

      private boolean unknownStatusCode(int status)
    • isExplicitlyNonCacheable

      protected boolean isExplicitlyNonCacheable(org.apache.hc.core5.http.HttpResponse response)
    • hasCacheControlParameterFrom

      protected boolean hasCacheControlParameterFrom(org.apache.hc.core5.http.HttpMessage msg, String[] params)
    • isExplicitlyCacheable

      protected boolean isExplicitlyCacheable(org.apache.hc.core5.http.HttpResponse response)
    • isResponseCacheable

      public boolean isResponseCacheable(org.apache.hc.core5.http.HttpRequest request, org.apache.hc.core5.http.HttpResponse response)
      Determine if the HttpResponse gotten from the origin is a cacheable response.
      Parameters:
      request - the HttpRequest that generated an origin hit
      response - the HttpResponse from the origin
      Returns:
      true if response is cacheable
    • expiresHeaderLessOrEqualToDateHeaderAndNoCacheControl

      private boolean expiresHeaderLessOrEqualToDateHeaderAndNoCacheControl(org.apache.hc.core5.http.HttpResponse response)
    • from1_0Origin

      private boolean from1_0Origin(org.apache.hc.core5.http.HttpResponse response)