GuideReference
TrainingSupportCommunity
Reference

downstream_​cache

  • Property Manager name: Downstream Cacheability
  • Behavior version: The v2023-01-05 rule format supports the downstream_​cache behavior v1.2.
  • Rule format status: GA, stable
  • Access: Read/Write
  • Allowed in includes: Yes

Specify the caching instructions the edge server sends to the end user's client or client proxies. By default, the cache's duration is whichever is less: the remaining lifetime of the edge cache, or what the origin's header specifies. If the origin is set to no-store or bypass-cache, edge servers send cache-busting headers downstream to prevent downstream caching.

OptionTypeDescriptionRequires
behaviorenum

Specify the caching instructions the edge server sends to the end user's client.

{"displayType":"enum","options":["ALLOW","MUST_REVALIDATE","BUST","TUNNEL_ORIGIN","NONE"],"tag":"select"}
ALLOW

The value of allow_​behavior chooses the caching method and headers to send to the client.

MUST_​REVALIDATE

This equates to a Cache-Control: no-cache header, which allows caching but forces the client browser to send an if-modified-since request each time it requests the object.

BUST

Sends cache-busting headers downstream.

TUNNEL_​ORIGIN

This passes Cache-Control and Expires headers from the origin to the downstream client.

NONE

Don't send any caching headers. Allow client browsers to cache content according to their own default settings.

allow_​behaviorenum

Specify how the edge server calculates the downstream cache by setting the value of the Expires header.

behavior is ALLOW
{"displayType":"enum","options":["LESSER","GREATER","REMAINING_LIFETIME","FROM_MAX_AGE","FROM_VALUE","PASS_ORIGIN"],"tag":"select"}
{"if":{"attribute":"behavior","op":"eq","value":"ALLOW"}}
LESSER

Sends the lesser value of what the origin specifies and the edge cache's remaining duration. This is the default behavior.

GREATER

Sends the greater value of what the origin specifies and the edge cache's remaining duration.

REMAINING_​LIFETIME

Sends the value of the edge cache's remaining duration, without comparing it to the origin's headers.

FROM_​MAX_​AGE

Sends the cache:max-age value applied to the object, without evaluating the cache's duration.

FROM_​VALUE

Sends the value of the edge cache's duration.

PASS_​ORIGIN

Sends the value of the origin's header, without evaluating the edge cache's duration.

ttlstring (duration)

Sets the duration of the cache. Setting the value to 0 equates to a no-cache header that forces revalidation.

allow_​behavior is FROM_​VALUE
{"displayType":"string","tag":"input","type":"text"}
{"if":{"attribute":"allowBehavior","op":"eq","value":"FROM_VALUE"}}
send_​headersenum

Specifies the HTTP headers to include in the response to the client.

behavior is ALLOW
{"displayType":"enum","options":["CACHE_CONTROL_AND_EXPIRES","CACHE_CONTROL","EXPIRES","PASS_ORIGIN"],"tag":"select"}
{"if":{"attribute":"behavior","op":"eq","value":"ALLOW"}}
CACHE_​CONTROL_​AND_​EXPIRES

Sends both Cache-Control and Expires header.

CACHE_​CONTROL

Sends only the origin's Cache-Control header.

EXPIRES

Sends only the origin's Expires header.

PASS_​ORIGIN

Sends the same set of Cache-Control and Expires headers received from the origin.

send_​privateboolean

Adds a Cache-Control: private header to prevent objects from being cached in a shared caching proxy.

behavior is either: ALLOW, MUST_​REVALIDATE
AND send_​headers is not EXPIRES
{"displayType":"boolean","tag":"input","type":"checkbox"}
{"if":{"op":"and","params":[{"attribute":"behavior","op":"in","value":["ALLOW","MUST_REVALIDATE"]},{"attribute":"sendHeaders","op":"neq","value":"EXPIRES"}]}}