Cache
How query string cache works
Last updated
How query string cache works
Last updated
In other word, you will only be charged when our server generates an image for you i.e. cache miss on our server.
User's browser send a request to get an image. This image points to Query String URL integration that we have set up previously.
Images are cached on Amazon CloudFront. This is why Stencil image's load is so fast because we are using Amazon CloudFront to cache in multiple locations throughout the world.
If images are in CloudFront's cache, it will return the cache version (i.e. go to step 4 directly). Otherwise it will send a request to Stencil.
Stencil maintains a smart cache, we won't go into details on how it works but it can figure out whether you're generating the same image as before or it is a new image.
If a new image needs to be generated, your quota will be deducted. Otherwise, your usage remains unchanged.
Amazon CloudFront will cache this image returned by our server. Any subsequent requests will hit Amazon CloudFront.
To assist with issues, image response header contains some useful information to know whether cache is working as intended.
Header
Description
x-cache
This is CloudFront cache header. HIT
when retrieving from CloudFront's cache, MISS
when image is not in CloudFront's cache.
x-stencil-cache
This is Stencil cache header. HIT
when Stencil returns the image from its cache. MISS
when Stencil generates new image.
x-stencil-error
If image fails to be generated, please check the status code and this header. This header contains the reason of image failure.
Sometimes you will getx-cache: HIT
and x-stencil-cache: MISS
within the same response. Don't worry, your usage will remain unchanged.
This happens when an image is first generated and the subsequent cache hit from CloudFront also caches this header value.