Re: Bug – 304 status - Cache-Control

S.A.N nginx-forum at nginx.us
Fri Jan 3 22:37:53 UTC 2014


> Если вы хотите, чтобы оно работало так, то надо включить в ключ 
> кеширования заголовок If-None-Match - т.к. от него зависит ответ 
> бекенда.

Нет, так делать не надо, потому что на один uri может быть только один
актуальный ETag, новые значения ETag означают обязательную инвалидацию всех
предыдущих значений ETag для этого uri, т.е если мы ETag добавим в ключ
кеша, только один ключ будет актуальным все остальные ключи по этому uri,
будут лежать как мусор потому что они не могут быть актуальными и их нельзя
отдавать клиенту, значит и смысла их хранить в кеше нет.

Проблему с кешированием 304 статуса, мы решили ещё проще – бекенд теперь
проверяет значения If-Modified-Since, если оно пустое, ревалидация не
проводится, страница будет генерироватся полностью со статусом 200, даже
если хедер If-None-Match не пустой и является актуальным.
Это корректное условия для ревалидации клиентского кеширования и для
кеширования Nginx.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,245951,245989#msg-245989



Подробная информация о списке рассылки nginx-ru