X-Cache

Indicates whether the request was a HIT or a MISS.

Fastly writes this header into responses. It is proprietary to Fastly.

Fastly appends this non-standard header to all responses by default, using a simplified derivative of the value of the fastly_info.state variable. If the value of fastly_info.state is HIT or any value that starts with HIT- then X-Cache will be set to HIT, otherwise MISS.

Requests resulting in a PASS will be reported as MISS, while requests resulting in edge-generated synthetic content will be reported as HIT. Additionally all hits resulting from serving stale or background revalidations will also report as HIT.

This header may contain reports from multiple servers, if shielding or Next-gen WAF at Edge is enabled, or if you use custom VCL code that invokes the restart statement.

Other than in the case of a restart, any entries in this header except "MISS" indicate that the request was satisfied from cache and not forwarded to origin (or Next-gen WAF at Edge)

You can remove this header, or make it subject to Fastly-Debug, by using VCL in the vcl_deliver subroutine (after the #FASTLY deliver placeholder in custom VCL, or in a 'deliver' VCL snippet):

if (!req.http.Fastly-Debug) {
unset resp.http.X-Cache;
}

User contributed notes

BETA

Do you see an error in this page? Do you have an interesting use case, example or edge case people should know about? Share your knowledge and help people who are reading this page! (Comments are moderated; for support, please contact Fastly support)