req.hash
STRING, can only be set
(cannot be read or unset
).
Hash value for the object. The hash determines what is unique about an object. Anything added to the hash will cause Varnish to cache objects separately based on that information.
For example, adding req.url
to the hash causes
each URL to be cached as a separate object as one would normally expect.
To ensure purge all functionality works for the service, req.vcl.generation
must be added to req.hash
as shown below:
set req.hash += req.vcl.generation;
Try it out
req.hash
is used in the following code examples. Examples apply VCL to real-world use cases and can be deployed as they are, or adapted for your own service. See the full list of code examples for more inspiration.
Click RUN on a sample below to provision a Fastly service, execute the code on Fastly, and see how the function behaves.
Support caching of OPTIONS requests
Normally OPTIONS requests aren't cacheable. Allow caching of OPTIONS by converting the request to a GET and back to OPTIONS if it's a cache miss.
Cache '429' rate-limiter responses per IP
If a backend returns a 429, cache it for the requesting IP but continue to allow other clients to use origin.