Re: Gzip и ETag

Maxim Dounin mdounin at mdounin.ru
Wed May 8 09:34:22 UTC 2013


Hello!

On Wed, May 08, 2013 at 09:31:32AM +0100, Anatoly Mikhailov wrote:

> 
> On May 8, 2013, at 12:23 AM, Maxim Dounin <mdounin at mdounin.ru> wrote:
> 
> > Hello!
> > 
> > On Tue, May 07, 2013 at 11:32:07PM +0100, Anatoly Mikhailov wrote:
> > 
> >> Меня настораживает интересная закономерность, включая/отключая gzip в конфигурации Nginx,
> >> ETag заголовок пропадает/появляется соответственно в прокированном ответе от бэкэнда (Unicorn).
> >> Проще говоря, при gzip off ответ всегда приходит с ETag, все остальные параметры на это не влияют.
> >> 
> >> Бэкнэнд, если слушает порт, то легко убедиться, что он добавляет заголовок ETag к каждому ответу,
> >> и чтобы проксировать ETag заголовок через upstream приходится выключать gzip.
> >> Если я правильно понимаю, то сжатый ответ не может содержать некоторые заголовки?
> > 
> > При любых изменениях тела ответа, в том числе - модулем gzip, 
> > ETag'и из ответа убираются.  Это сделано, т.к. стандарт требует, 
> > чтобы strong etags у ответов совпадали тогда и только тогда, когда 
> > ответы совпадают до байта.  (А если ответы будет не совпадать при 
> > одинаковых ETag'ах - это в свою очередь чревато получением 
> > неверного суммарного ответа при комбинировании нескольких ответов 
> > на range-запросы.)  Почитать подробности можно тут (и далее по 
> > ссылкам):
> > 
> > http://tools.ietf.org/html/rfc2616#section-3.11
> > 
> 
> Ага, спасибо, более менее разобрался. Все таки, есть вариант оставлять ETag, пришедший от бэкэнда,
> может в сочетании с Last-Modified?

В чём цель?

> Кстати, до реализации SPDY все было точно так же (ETag не проксировался при Gzip)?

Поддержка entity tags не имеет отношения к spdy, и появилась в 
nginx 1.3.3.  До этого nginx не знал про заголовок ETag и ничего с 
ним не делал.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



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