Re: Gzip и ETag
Anatoly Mikhailov
anatoly at sonru.com
Wed May 8 08:31:32 UTC 2013
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)?
> В качестве оптимизации - можно обучить nginx отделять weak etags
> от strong etags, и убирать только strong. Но для начала имеет
> смысл понять - надо ли оно на самом деле.
>
> --
> Maxim Dounin
> http://nginx.org/en/donation.html
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
Подробная информация о списке рассылки nginx-ru