Class ResponseCachingPolicy


  • class ResponseCachingPolicy
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Constructor Description
      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.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private boolean expiresHeaderLessOrEqualToDateHeaderAndNoCacheControl​(org.apache.hc.core5.http.HttpResponse response)  
      private boolean from1_0Origin​(org.apache.hc.core5.http.HttpResponse response)  
      protected boolean hasCacheControlParameterFrom​(org.apache.hc.core5.http.HttpMessage msg, java.lang.String[] params)  
      protected boolean isExplicitlyCacheable​(org.apache.hc.core5.http.HttpResponse response)  
      protected boolean isExplicitlyNonCacheable​(org.apache.hc.core5.http.HttpResponse response)  
      boolean isResponseCacheable​(java.lang.String httpMethod, org.apache.hc.core5.http.HttpResponse response)
      Determines if an HttpResponse can be cached.
      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.
      private boolean unknownStatusCode​(int status)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • AUTH_CACHEABLE_PARAMS

        private static final java.lang.String[] AUTH_CACHEABLE_PARAMS
      • CACHEABLE_STATUS_CODES

        private static final java.util.Set<java.lang.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 java.util.Set<java.lang.Integer> uncacheableStatusCodes
    • Constructor Detail

      • 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 Detail

      • isResponseCacheable

        public boolean isResponseCacheable​(java.lang.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,
                                                       java.lang.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)