Caching the uncacheable - leveraging HTTP cache for performant personalization

Imagine a client, having 2000 pages loading the same header with the same resource, whose
rendering is also quite heavy – computing JCR paths, loading resources etc.

Each one of these pages will cause AEM to re-render the header, on each initial page load, on the dispatcher. The TTL of the dispatcher cache is 24 hours. This results in 2000 render calculations every day. Using HTTP cache, this can be brought down to ONE.

Now imagine a client that also wants the header personalized based on a user group such as
admin, editor and customer…