Class ResponseCacheControl
java.lang.Object
org.apache.hc.client5.http.cache.ResponseCacheControl
- All Implemented Interfaces:
CacheControl
@Contract(threading=IMMUTABLE)
public final class ResponseCacheControl
extends Object
implements CacheControl
Represents the value of the Cache-Control header in an HTTP response, which indicate whether and for how long
the response can be cached by the client and intermediary proxies.
The class provides methods to retrieve the maximum age of the response and the maximum age that applies to shared caches. The values are expressed in seconds, with -1 indicating that the value was not specified in the header.
Instances of this class are immutable, meaning that their values cannot be changed once they are set. To create an instance, use one of the constructors that take the desired values as arguments. Alternatively, use the default constructor to create an instance with both values set to -1, indicating that the header was not present in the response.
- Since:
- 5.4
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final booleanThe isPrivate flag indicates whether the Cache-Control header includes the private directive.private final booleanIndicates whether the Cache-Control header includes the "public" directive.static final ResponseCacheControlprivate final booleanFlag for the 'immutable' Cache-Control directive.private final longThe max-age directive value.private final booleanIndicates whether the Cache-Control header includes the "must-revalidate" directive.private final booleanIndicates whether the Cache-Control header includes the "must-understand" directive.private final booleanThe isNoCache flag indicates whether the Cache-Control header includes the no-cache directive.A set of field names specified in the "no-cache" directive of the Cache-Control header.private final booleanThe isNoStore flag indicates whether the Cache-Control header includes the no-store directive.private final booleanIndicates whether the Cache-Control header includes the "proxy-revalidate" directive.private final longThe shared-max-age directive value.private final longThe number of seconds that a cached stale response MAY be used to satisfy the request, regardless of other freshness information..private final longThe number of seconds that a stale response is considered fresh for the purpose of serving a response while a revalidation request is made to the origin server.private final boolean -
Constructor Summary
ConstructorsConstructorDescriptionResponseCacheControl(long maxAge, long sharedMaxAge, boolean mustRevalidate, boolean noCache, boolean noStore, boolean cachePrivate, boolean proxyRevalidate, boolean cachePublic, long staleWhileRevalidate, long staleIfError, Set<String> noCacheFields, boolean mustUnderstand, boolean immutable) Creates a new instance ofCacheControlwith the specified values. -
Method Summary
Modifier and TypeMethodDescriptionstatic ResponseCacheControl.Builderbuilder()longReturns the max-age value from the Cache-Control header.Returns an unmodifiable set of field names specified in the "no-cache" directive of the Cache-Control header.longReturns the shared-max-age value from the Cache-Control header.longReturns the stale-if-error value from the Cache-Control header.longReturns the stale-while-revalidate value from the Cache-Control header.booleanReturns the private flag from the Cache-Control header.booleanReturns the 'immutable' Cache-Control directive status.booleanReturns whether the must-revalidate directive is present in the Cache-Control header.booleanReturns the must-understand directive from the Cache-Control header.booleanReturns the no-cache flag from the Cache-Control header.booleanReturns the no-store flag from the Cache-Control header.booleanReturns whether the proxy-revalidate value is set in the Cache-Control header.booleanisPublic()Returns whether the public value is set in the Cache-Control header.booleanReturns the 'immutable' Cache-Control directive status.toString()
-
Field Details
-
maxAge
private final long maxAgeThe max-age directive value. -
noCache
private final boolean noCacheThe isNoCache flag indicates whether the Cache-Control header includes the no-cache directive. -
noStore
private final boolean noStoreThe isNoStore flag indicates whether the Cache-Control header includes the no-store directive. -
cachePrivate
private final boolean cachePrivateThe isPrivate flag indicates whether the Cache-Control header includes the private directive. -
mustRevalidate
private final boolean mustRevalidateIndicates whether the Cache-Control header includes the "must-revalidate" directive. -
proxyRevalidate
private final boolean proxyRevalidateIndicates whether the Cache-Control header includes the "proxy-revalidate" directive. -
cachePublic
private final boolean cachePublicIndicates whether the Cache-Control header includes the "public" directive. -
mustUnderstand
private final boolean mustUnderstandIndicates whether the Cache-Control header includes the "must-understand" directive. -
staleWhileRevalidate
private final long staleWhileRevalidateThe number of seconds that a stale response is considered fresh for the purpose of serving a response while a revalidation request is made to the origin server. -
staleIfError
private final long staleIfErrorThe number of seconds that a cached stale response MAY be used to satisfy the request, regardless of other freshness information.. -
noCacheFields
-
undefined
private final boolean undefined -
immutable
private final boolean immutableFlag for the 'immutable' Cache-Control directive. If this field is true, then the 'immutable' directive is present in the Cache-Control header. The 'immutable' directive is meant to inform a cache or user agent that the response body will not change over time, even though it may be requested multiple times. -
DEFAULT
-
-
Constructor Details
-
ResponseCacheControl
ResponseCacheControl(long maxAge, long sharedMaxAge, boolean mustRevalidate, boolean noCache, boolean noStore, boolean cachePrivate, boolean proxyRevalidate, boolean cachePublic, long staleWhileRevalidate, long staleIfError, Set<String> noCacheFields, boolean mustUnderstand, boolean immutable) Creates a new instance ofCacheControlwith the specified values.- Parameters:
maxAge- The max-age value from the Cache-Control header.sharedMaxAge- The shared-max-age value from the Cache-Control header.mustRevalidate- The must-revalidate value from the Cache-Control header.noCache- The no-cache value from the Cache-Control header.noStore- The no-store value from the Cache-Control header.cachePrivate- The private value from the Cache-Control header.proxyRevalidate- The proxy-revalidate value from the Cache-Control header.cachePublic- The public value from the Cache-Control header.staleWhileRevalidate- The stale-while-revalidate value from the Cache-Control header.staleIfError- The stale-if-error value from the Cache-Control header.noCacheFields- The set of field names specified in the "no-cache" directive of the Cache-Control header.mustUnderstand- The must-understand value from the Cache-Control header.immutable- The immutable value from the Cache-Control header.
-
-
Method Details
-
getMaxAge
public long getMaxAge()Returns the max-age value from the Cache-Control header.- Specified by:
getMaxAgein interfaceCacheControl- Returns:
- The max-age value.
-
isNoCache
public boolean isNoCache()Returns the no-cache flag from the Cache-Control header.- Specified by:
isNoCachein interfaceCacheControl- Returns:
- The no-cache flag.
-
isNoStore
public boolean isNoStore()Returns the no-store flag from the Cache-Control header.- Specified by:
isNoStorein interfaceCacheControl- Returns:
- The no-store flag.
-
isCachePrivate
public boolean isCachePrivate()Returns the private flag from the Cache-Control header.- Returns:
- The private flag.
-
isMustUnderstand
public boolean isMustUnderstand()Returns the must-understand directive from the Cache-Control header.- Returns:
- The must-understand directive.
-
isMustRevalidate
public boolean isMustRevalidate()Returns whether the must-revalidate directive is present in the Cache-Control header.- Returns:
trueif the must-revalidate directive is present, otherwisefalse
-
isProxyRevalidate
public boolean isProxyRevalidate()Returns whether the proxy-revalidate value is set in the Cache-Control header.- Returns:
trueif proxy-revalidate is set,falseotherwise.
-
isPublic
public boolean isPublic()Returns whether the public value is set in the Cache-Control header.- Returns:
trueif public is set,falseotherwise.
-
getStaleWhileRevalidate
public long getStaleWhileRevalidate()Returns the stale-while-revalidate value from the Cache-Control header.- Returns:
- The stale-while-revalidate value.
-
getStaleIfError
public long getStaleIfError()Returns the stale-if-error value from the Cache-Control header.- Specified by:
getStaleIfErrorin interfaceCacheControl- Returns:
- The stale-if-error value.
-
getNoCacheFields
-
isUndefined
public boolean isUndefined()Returns the 'immutable' Cache-Control directive status.- Returns:
- true if the 'immutable' directive is present in the Cache-Control header.
-
isImmutable
public boolean isImmutable()Returns the 'immutable' Cache-Control directive status.- Returns:
- true if the 'immutable' directive is present in the Cache-Control header.
-
toString
-
builder
-