In the CDN resource settings, you can enable content caching to temporarily store the file copies loaded from origins. There are two types of caching: on CDN servers and in the client browsers.
Caching on CDN servers
If caching on CDN servers is enabled for a resource, files are copied from origins to servers when the following events occur:
- The client requested from the CDN a file that hadn't been cached by the server yet.
- The lifetime of the file copy on the server expired, and the file changed on the origin since that time (otherwise, the lifetime is extended for the same period).
- You preloaded files from origins in the resource settings.
Until the cache lifetime expires, the CDN server returns a cached copy of the file to the clients without accessing origins.
You can choose one of two modes to define the cache lifetime:
|Same as origin||The file is cached for the period specified in the origin's response to the request. The origin must add to the response the
If the origin responded with an HTTP status code
|Custom||The default cache lifetime is specified in the resource settings. It applies to all the origin responses with the HTTP status codes
If a status code is not included in the list and no cache lifetime is specified for it separately, a file from the response with such a code is not cached.
Caching in browsers
If caching in browsers is enabled for a resource, CDN servers will add the
Cache-Control header with the directives
max-age (indicates the cache lifetime in seconds) and
public (allows file caching at any level) to responses with the HTTP status codes
308. The cache lifetime is specified in the resource settings.
Files from responses with other status codes are not cached.
Cookies and query parameters
Requests to the CDN server may contain the same path in the URI, but different cookies (the
Set-Cookie HTTP header) and/or different query parameters. In the resource settings, you can specify how to cache files corresponding to such requests: save one file copy for all requests (that is, ignore cookies and/or query parameters) or consider them different and cache the file separately for each request.
Individual files can be preloaded from origins, that is, cached manually, without waiting for requests from clients. We recommend that you preload large files (with a size of 200 MB or higher).
You can only preload content that's not on the servers yet. To update the already cached files, purge the cache before preloading.
There are technical limits for preloading.
You can delete cached file copies from CDN servers by purging the cache. This lets you quickly update in the CDN the content that has changed in the origins.
You can purge cache completely or partially. Partial purge is recommended: if you delete copies of all files from the cache, CDN servers will significantly increase the load on the origins, having to access them at every file request.
For partial purging, you can specify the paths to specific files and folders or use the
* character representing any string of characters. Each path must start with the
* character. Examples of paths:
/image/foo.png: An individual file.
/image/*.jpg: All files in the
/imagefolder with the
*.jpg: All files with the
*/static/*: All files that have the
/static/substring in the path.
If the file is cached based on the query parameters (that is, for each request with new parameters, a separate copy was saved), all copies of the file are deleted by default. To delete only specific copies, you need to explicitly specify their query parameters: for example,
There are technical limits for cache purging.