code: boolean isCacheableResponse(HTTPResponse response) {
          if (!cacheableStatuses.contains(response.getStatus())) {
              return false;
          }
          Headers headers = response.getHeaders();
          return headers.isCachable();
      }
docs: A response received with a status code of 200, 203, 206, 300, 301 or 410 MAY be stored by a cache and used in reply to a subsequent request,
  subject to the expiration mechanism, unless a cache-control directive prohibits caching.
  However, a cache that does not support the Range and Content-Range headers MUST NOT cache 206 (Partial Content) responses.
  
  We do not support 206 (Partial Content).
  See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.4
  @param response the response to analyze
  @return {@code true} if the response is cacheable. {@code false} if not.