Re: Bug – 304 status - Cache-Control
Maxim Dounin
mdounin at mdounin.ru
Fri Jan 3 13:56:55 UTC 2014
Hello!
On Fri, Jan 03, 2014 at 02:31:28AM -0500, S.A.N wrote:
> > Если файла в кеше нет - то откуда взялся ответ 304?
>
> Ответ 304 появился, потому что клиент прислал HTTP_IF_NONE_MATCH, т.е
> ревалидация была произведена по Etag, в нашем конфиге Nginx есть строка
> fastcgi_param HTTP_IF_NONE_MATCH $http_if_none_match if_not_empty;
> она нам нужна, потому что во многих местах используем только клиент
> (private) кеширования на ETag.
>
> Я понял в чем проблема, Nginx при отсутствии своего файл кеша, удаляет
> хедеры
> If-Modified-Since и If-None-Match
> Мы в конфиге востонавливаем клиенский хедер If-None-Match и по нему
> происходит ревалидации не в зависимости от наличия или отсутствия файла кеша
> в Nginx, из-за это и проблемы.
>
> Ок, как нам правильно поступить, клиенские хедеры If-None-Match нам нужны,
> потому что по нему происходит ревалидация клиентского приватного кеша, если
> его отключить тогда мы не сможем ревалидировать клиенский кеш по
> If-None-Match.
Если вы хотите, чтобы оно работало так, то надо включить в ключ
кеширования заголовок If-None-Match - т.к. от него зависит ответ
бекенда.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru