Este se destaca no pedido como sendo um pouco estranho:
Cache-Control:max-age=0
Provavelmente mais importante, percebo que o conteúdo retornado é html. Está sendo gerado dinamicamente? O Apache pode enviar uma resposta 304, mas a menos que você esteja servindo conteúdo estático, não é tarefa do Apache fazer essa chamada, e se resume à lógica do seu aplicativo. Por exemplo. a maioria dos aplicativos php tem suporte limitado para essas coisas.
Um cache front-end pode ajudar, já que o aplicativo de armazenamento em cache pode verificar a hora da modificação, etag etc., mas somente se os cabeçalhos da solicitação e do aplicativo forem compatíveis com o cache. Por exemplo, o aplicativo deve definir cabeçalhos apropriados para indicar que o conteúdo pode ser armazenado em cache, e coisas como o cabeçalho de controle de cache em sua solicitação negarão o cache. Seus cabeçalhos não estão parecendo amigáveis ao cache.