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.
A trait that marks the cache directives generated from parsing a cache-control header.
An incoming request which may be served from cache.
Calculates the current age of a response.
Calculates freshness lifetime for a request.
A response from an origin server.
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
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.
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
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.
https://tools.ietf.org/html/rfc7231#section-7.1.4
https://tools.ietf.org/html/rfc7234#section-4.1
A response that comes from cache.
A response that comes from cache.
the effective request URI. This is part of the primary cache lookup key.
the numeric cached response status code.
the headers on the stored response.
the original request method that was used to generate the stored response.
the request headers that were nominated by the response's Vary header.
Tells the cache what headers should be stripped before they are cached.
A parsed warning.
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
Defines methods for parsing and formatting HTTP dates.
Case classes used by ResponseCachingPolicy.
Predefined actions to take for a selected response.
The possible actions a client can execute when determining to serve a stored response.
Parses the Vary header in to a list of field names.
Calculates the current age of a response.
https://tools.ietf.org/html/rfc7234#section-4.2.3