@Contract(threading=IMMUTABLE_CONDITIONAL)
class CachedResponseSuitabilityChecker
extends java.lang.Object
HttpCacheEntry
is suitable to be
used as a response for a given HttpRequest
.Modifier and Type | Field and Description |
---|---|
private float |
heuristicCoefficient |
private long |
heuristicDefaultLifetime |
private org.apache.commons.logging.Log |
log |
private boolean |
sharedCache |
private boolean |
useHeuristicCaching |
private CacheValidityPolicy |
validityStrategy |
Constructor and Description |
---|
CachedResponseSuitabilityChecker(CacheConfig config) |
CachedResponseSuitabilityChecker(CacheValidityPolicy validityStrategy,
CacheConfig config) |
Modifier and Type | Method and Description |
---|---|
boolean |
allConditionalsMatch(org.apache.http.HttpRequest request,
HttpCacheEntry entry,
java.util.Date now)
Check that conditionals that are part of this request match
|
private boolean |
cacheEntryDoesNotContainMethodAndEntity(HttpCacheEntry entry) |
boolean |
canCachedResponseBeUsed(org.apache.http.HttpHost host,
org.apache.http.HttpRequest request,
HttpCacheEntry entry,
java.util.Date now)
Determine if I can utilize a
HttpCacheEntry to respond to the given
HttpRequest |
private boolean |
entryIsNotA204Response(HttpCacheEntry entry) |
private boolean |
etagValidatorMatches(org.apache.http.HttpRequest request,
HttpCacheEntry entry)
Check entry against If-None-Match
|
private long |
getMaxStale(org.apache.http.HttpRequest request) |
private boolean |
hasSupportedEtagValidator(org.apache.http.HttpRequest request) |
private boolean |
hasSupportedLastModifiedValidator(org.apache.http.HttpRequest request) |
private boolean |
hasUnsupportedCacheEntryForGet(org.apache.http.HttpRequest request,
HttpCacheEntry entry) |
private boolean |
hasUnsupportedConditionalHeaders(org.apache.http.HttpRequest request) |
private boolean |
hasValidDateField(org.apache.http.HttpRequest request,
java.lang.String headerName) |
boolean |
isConditional(org.apache.http.HttpRequest request)
Is this request the type of conditional request we support?
|
private boolean |
isFreshEnough(HttpCacheEntry entry,
org.apache.http.HttpRequest request,
java.util.Date now) |
private boolean |
isGet(org.apache.http.HttpRequest request) |
private boolean |
lastModifiedValidatorMatches(org.apache.http.HttpRequest request,
HttpCacheEntry entry,
java.util.Date now)
Check entry against If-Modified-Since, if If-Modified-Since is in the future it is invalid as per
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
|
private boolean |
originInsistsOnFreshness(HttpCacheEntry entry) |
private final org.apache.commons.logging.Log log
private final boolean sharedCache
private final boolean useHeuristicCaching
private final float heuristicCoefficient
private final long heuristicDefaultLifetime
private final CacheValidityPolicy validityStrategy
CachedResponseSuitabilityChecker(CacheValidityPolicy validityStrategy, CacheConfig config)
CachedResponseSuitabilityChecker(CacheConfig config)
private boolean isFreshEnough(HttpCacheEntry entry, org.apache.http.HttpRequest request, java.util.Date now)
private boolean originInsistsOnFreshness(HttpCacheEntry entry)
private long getMaxStale(org.apache.http.HttpRequest request)
public boolean canCachedResponseBeUsed(org.apache.http.HttpHost host, org.apache.http.HttpRequest request, HttpCacheEntry entry, java.util.Date now)
HttpCacheEntry
to respond to the given
HttpRequest
host
- HttpHost
request
- HttpRequest
entry
- HttpCacheEntry
now
- Right now in timeprivate boolean isGet(org.apache.http.HttpRequest request)
private boolean entryIsNotA204Response(HttpCacheEntry entry)
private boolean cacheEntryDoesNotContainMethodAndEntity(HttpCacheEntry entry)
private boolean hasUnsupportedCacheEntryForGet(org.apache.http.HttpRequest request, HttpCacheEntry entry)
public boolean isConditional(org.apache.http.HttpRequest request)
request
- The current httpRequest being madetrue
if the request is supportedpublic boolean allConditionalsMatch(org.apache.http.HttpRequest request, HttpCacheEntry entry, java.util.Date now)
request
- The current httpRequest being madeentry
- the cache entrynow
- right NOW in timetrue
if the request matches all conditionalsprivate boolean hasUnsupportedConditionalHeaders(org.apache.http.HttpRequest request)
private boolean hasSupportedEtagValidator(org.apache.http.HttpRequest request)
private boolean hasSupportedLastModifiedValidator(org.apache.http.HttpRequest request)
private boolean etagValidatorMatches(org.apache.http.HttpRequest request, HttpCacheEntry entry)
request
- The current httpRequest being madeentry
- the cache entryprivate boolean lastModifiedValidatorMatches(org.apache.http.HttpRequest request, HttpCacheEntry entry, java.util.Date now)
request
- The current httpRequest being madeentry
- the cache entrynow
- right NOW in timeprivate boolean hasValidDateField(org.apache.http.HttpRequest request, java.lang.String headerName)