AhcHttpCache

play.api.libs.ws.ahc.cache.AhcHttpCache
class AhcHttpCache(underlying: Cache, heuristicsEnabled: Boolean)(implicit val executionContext: ExecutionContext) extends CacheDefaults

Central HTTP cache. This keeps a cache of HTTP responses according to https://tools.ietf.org/html/rfc7234#section-2

The primary cache key consists of the request method and target URI. However, since HTTP caches in common use today are typically limited to caching responses to GET, many caches simply decline other methods and use only the URI as the primary cache key.

Attributes

Graph
Supertypes
trait AhcUtilities
trait CacheDefaults
trait Cache
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

def cacheResponse(request: Request, response: CacheableResponse): Unit

Caches the response, stripping any headers marked as "not-cacheable".

Caches the response, stripping any headers marked as "not-cacheable".

Attributes

def cachingAction(request: Request, response: CacheableResponse): ResponseCachingAction
def calculateCurrentAge(request: Request, entry: ResponseEntry, requestTime: ZonedDateTime): Seconds

Calculates the current age of the stored response.

Calculates the current age of the stored response.

Attributes

override def calculateFreshnessFromHeuristic(request: CacheRequest, response: CacheResponse): Option[Seconds]

Allows the cache to calculate the freshness lifetime of the request using a heuristic.

Allows the cache to calculate the freshness lifetime of the request using a heuristic.

Attributes

See also
Definition Classes
Cache
def calculateFreshnessLifetime(request: Request, entry: ResponseEntry): Seconds

Attributes

def calculateSecondaryKeys(request: Request, response: Response): Option[Map[HeaderName, Seq[String]]]

Calculates the secondary keys of the request.

Calculates the secondary keys of the request.

Attributes

def close(): Unit
def freshenResponse(newHeaders: HttpHeaders, response: CacheableResponse): CacheableResponse

Attributes

def generateCachedResponse(request: Request, entry: ResponseEntry, currentAge: Seconds, isFresh: Boolean): CacheableResponse

Generates a response for the HTTP response with the appropriate headers.

Generates a response for the HTTP response with the appropriate headers.

Attributes

def get(key: EffectiveURIKey): Future[Option[ResponseEntry]]
def invalidateIfUnsafe(request: Request, response: CacheableResponse): Unit

Invalidates the effective request URI if the method is unsafe.

Invalidates the effective request URI if the method is unsafe.

Attributes

def invalidateKey(key: EffectiveURIKey): Unit

Invalidates the key.

Invalidates the key.

Attributes

override def isCacheableExtension(extension: CacheDirectiveExtension): Boolean

Returns true if the cache knows what to do with this cache extension, false otherwise.

Returns true if the cache knows what to do with this cache extension, false otherwise.

Attributes

Definition Classes
CacheDefaults -> Cache
def isError(response: CacheableResponse): Boolean
def isNotModified(response: CacheableResponse): Boolean
override def isShared: Boolean

Cache is not shared.

Cache is not shared.

Attributes

Definition Classes
Cache
def isUncachedResponse(any: Any): Boolean

Attributes

def isUnsafeMethod(request: Request): Boolean
def put(key: EffectiveURIKey, entry: ResponseEntry): Future[Unit]
def remove(key: EffectiveURIKey): Future[Unit]
def replaceHeaders(response: CacheableResponse)(block: HttpHeaders => HttpHeaders): CacheableResponse
def selectionAction(request: Request, entries: Seq[ResponseEntry]): ResponseSelectionAction
def serveAction(request: Request, entry: ResponseEntry, currentAge: Seconds): ResponseServeAction
override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
Any

Inherited methods

override def containsMatchingHeaders(presentedHeaders: Map[HeaderName, Seq[String]], nominatedHeaders: Map[HeaderName, Seq[String]]): Boolean

Returns true if the selecting header fields nominated by the stored response match those presented by the new request. This method is broken out into the cache functionality as section 4.1 can do transformation of header fields in non-trivial ways that cannot be anticipated by this library in order to find a match. Given the vagaries of Vary and the overall complexities of fields such as User-Agent, the assumption is that the cache knows best.

Returns true if the selecting header fields nominated by the stored response match those presented by the new request. This method is broken out into the cache functionality as section 4.1 can do transformation of header fields in non-trivial ways that cannot be anticipated by this library in order to find a match. Given the vagaries of Vary and the overall complexities of fields such as User-Agent, the assumption is that the cache knows best.

Value parameters

nominatedHeaders

the header fields nominated by the stored response

presentedHeaders

the presented headers by the new request.

Attributes

Returns

true if the cache considers it a match, false otherwise.

See also
Definition Classes
CacheDefaults -> Cache
Inherited from:
CacheDefaults
def debug(bodyPart: HttpResponseBodyPart): String

Attributes

Inherited from:
Debug (hidden)
def debug[T](ctx: FilterContext[T]): String

Attributes

Inherited from:
Debug (hidden)
def debug[T](handler: AsyncHandler[T]): String

Attributes

Inherited from:
Debug (hidden)
def debug(bodyParts: List[HttpResponseBodyPart]): String

Attributes

Inherited from:
Debug (hidden)
def debug(responseHeaders: HttpHeaders): String

Attributes

Inherited from:
Debug (hidden)
def debug(responseStatus: HttpResponseStatus): String

Attributes

Inherited from:
Debug (hidden)
def debug(response: Response): String

Attributes

Inherited from:
Debug (hidden)
def debug(request: Request): String

Attributes

Inherited from:
Debug (hidden)
def debug(cfg: AsyncHttpClientConfig): String

Attributes

Inherited from:
Debug (hidden)
def headersToMap(headers: HttpHeaders): TreeMap[String, Seq[String]]

Attributes

Inherited from:
AhcUtilities
override def isCacheableMethod(requestMethod: String): Boolean

Returns true if the method is cacheable, true for GET and HEAD by default.

Returns true if the method is cacheable, true for GET and HEAD by default.

Attributes

Definition Classes
CacheDefaults -> Cache
Inherited from:
CacheDefaults
override def isDefaultCacheable(statusCode: Int): Boolean

Returns true if the response code is cacheable by default.

Returns true if the response code is cacheable by default.

Attributes

Definition Classes
CacheDefaults -> Cache
Inherited from:
CacheDefaults
override def isUnderstoodStatusCode(statusCode: Int): Boolean

Cache understands the response status code behavior for caching purposes.

Cache understands the response status code behavior for caching purposes.

Attributes

Definition Classes
CacheDefaults -> Cache
Inherited from:
CacheDefaults

Implicits

Implicits

implicit val executionContext: ExecutionContext