eZ Publish uses Symfony HttpCache to manage content cache, with both expiration and validation model. Hence an ETag is computed for every content/version and sent in the Http response. It is also possible to use expiration model to get lightning fast responses.
An additional X-Location-Id header is added in the response for identification (see cache purge document).
Making your controller content cache aware
Sometimes you need that your controller's cache expires in the same time than a specific content (i.e. ESI sub-requests with
render twig helper, for a menu for instance). To be able to do that, you just need to add X-Location-Id header to the response object: