> Они
> вообще ничего не требуют кешировать. Кеш - дело сугубо
> добровольное. ;)
max-age=0 не требует кешировать ответ, смысл в том что он не запрещает кешировать ответ, в Nginx max-age=0 запрещает кеширования, в этом и есть не соответвия Nginx с спецификацией HTTP.
В Nginx есть деректива fastcgi_cache on, и бекенд отдал хедер Cache-Control: max-age=0, который по спецификации HTTP не запрещает кешировать ответ, в этом случаи Nginx должен кешировать ответ бекенда, это логично и соответствует спецификации HTTP.
Но сейчас чтобы этого добиться нужно эксплуатировать баг с X-Accel-Expires: @$time-1.
Я понимаю что так сложилось исторически, раньше в Nginx не было ревалидации кеша, по этому max-age=0 мог означать только запрет на кеширования, но при наличии ревалидации, это уже не совсем правильно.
Я не настаиваю чтобы вы это меняли хотя возможно как вариант сделать чтобы Nginx понимал хедер Cache-Control: must-revalidate, как указания кешировать но всегда ревалидировать.
Это уже на ваше усмотрения.
Главное чтобы была возможность добиться от Nginx постоянной ревалидации.