package cachecontrol
- Alphabetic
- Public
- Protected
Type Members
- trait Cache extends AnyRef
This trait defines methods that are used through the library where core business logic belongs to the cache that is not in scope for RFC 7234 and cannot be predefined.
- class CacheControlException extends RuntimeException
- trait CacheDefaults extends Cache
- sealed trait CacheDirective extends AnyRef
A trait that marks the cache directives generated from parsing a cache-control header.
- case class CacheRequest(uri: URI, method: String, headers: Map[HeaderName, Seq[String]]) extends Product with Serializable
An incoming request which may be served from cache.
- trait CacheResponse extends AnyRef
- class CurrentAgeCalculator extends AnyRef
Calculates the current age of a response.
Calculates the current age of a response.
https://tools.ietf.org/html/rfc7234#section-4.2.3
- class FreshnessCalculator extends AnyRef
Calculates freshness lifetime for a request.
- case class HeaderName(raw: String) extends Ordered[HeaderName] with Product with Serializable
- case class OriginResponse(uri: URI, status: Int, headers: Map[HeaderName, Seq[String]]) extends CacheResponse with Product with Serializable
A response from an origin server.
- sealed trait ResponseCachingAction extends AnyRef
- class ResponseCachingCalculator extends AnyRef
Decides whether this response from an origin server should be stored in cached or not.
Decides whether this response from an origin server should be stored in cached or not.
https://tools.ietf.org/html/rfc7234#section-3
- sealed trait ResponseSelectionAction extends AnyRef
- class ResponseSelectionCalculator extends AnyRef
This class looks through the available responses, and provides an action -- either selecting a response, or rejecting with either a timeout or forward to origin.
This class looks through the available responses, and provides an action -- either selecting a response, or rejecting with either a timeout or forward to origin. The cache's containsMatchingHeaders method is called in the case where the response has secondary keys (defined with Vary) that must be matched.
- sealed trait ResponseServeAction extends AnyRef
- class ResponseServingCalculator extends AnyRef
This class determines whether a cache can serve a stored response from request.
This class determines whether a cache can serve a stored response from request. It is "Constructing Responses from Caches" section in RFC 7234.
If there are multiple matches, the most recent response must be sent for evaluation, as determined by the Date header field.
https://tools.ietf.org/html/rfc7234#section-4
- class SecondaryKeyCalculator extends AnyRef
This class produces secondary keys for a response from an origin server that contains a Vary header.
This class produces secondary keys for a response from an origin server that contains a Vary header.
The cache must store the response with the requested header from the original request, so that subsequent requests match. This is a little confusing, so an example follows:
A request comes in with:
GET /some/path HTTP/1.1 Host: example.com Accept-Encoding: gzip
The response comes back with a Vary header on the Accept-Encoding:
HTTP/1.1 200 OK Vary: Accept-Encoding Content-Encoding: gzip Content-Type: application/json Content-Length: 230 Cache-Control: max-age=10000000
The cache has to look at the Vary header, see that "Accept-Encoding" is a header on the request, and then store "Accept-Encoding: gzip" as a secondary key on the cache entry.
The implication is that the primary key entry of "GET http://example.com/some/path" is insufficient, and in order to get that specific response from cache, any subsequent requests should have a "Accept-Encoding: gzip" header in the same way.
- See also
https://tools.ietf.org/html/rfc7234#section-4.1
https://tools.ietf.org/html/rfc7231#section-7.1.4
- case class Seconds extends TemporalAmount with Product with Serializable
An immutable time period representing a number of seconds.
- case class StoredResponse(uri: URI, status: Int, headers: Map[HeaderName, Seq[String]], requestMethod: String, nominatedHeaders: Map[HeaderName, Seq[String]]) extends CacheResponse with Product with Serializable
A response that comes from cache.
A response that comes from cache.
- uri
the effective request URI. This is part of the primary cache lookup key.
- status
the numeric cached response status code.
- headers
the headers on the stored response.
- requestMethod
the original request method that was used to generate the stored response.
- nominatedHeaders
the request headers that were nominated by the response's Vary header.
- class StripHeaderCalculator extends AnyRef
Tells the cache what headers should be stripped before they are cached.
- case class Warning(code: Int, agent: String, text: String, date: Option[ZonedDateTime] = None) extends Product with Serializable
A parsed warning.
Value Members
- object CacheDirectiveParser
The parser for cache directives specified in the "Cache-Control" HTTP header.
The parser for cache directives specified in the "Cache-Control" HTTP header.
https://tools.ietf.org/html/rfc7234#section-5.2
- object CacheDirectiveParserCompat
- object CacheDirectives
- object CurrentAgeCalculator
- object HeaderNames
- object HttpDate
Defines methods for parsing and formatting HTTP dates.
- object ResponseCachingActions
Case classes used by ResponseCachingPolicy.
- object ResponseCachingCalculator
- object ResponseSelectionActions
Predefined actions to take for a selected response.
- object ResponseSelectionCalculator
- object ResponseServeActions
The possible actions a client can execute when determining to serve a stored response.
- object ResponseServingCalculator
- object SecondaryKeyCalculator
- object Seconds extends Serializable
- object VaryParser
Parses the Vary header in to a list of field names.
- object WarningParser