Hello! On Wed, May 08, 2013 at 11:18:31AM +0100, Anatoly Mikhailov wrote:
> > On May 8, 2013, at 10:34 AM, Maxim Dounin <mdou...@mdounin.ru> wrote: > > > Hello! > > > > On Wed, May 08, 2013 at 09:31:32AM +0100, Anatoly Mikhailov wrote: > > > >> > >> On May 8, 2013, at 12:23 AM, Maxim Dounin <mdou...@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? > > > > В чём цель? > > Цель всегда одна - UI responsiveness, чем быстрее пользователь получит данные > (идеально - из браузерного кэша), > тем меньше нагрузки будет на рендеринг в браузере и можно отдать пустое тело > запроса от бэкэнда (fresh_when/stale в Rack) > > E-Tag, Last-Modified - весьма удобные инструменты, которые неожиданно > перестали работать как раз после Nginx 1.3.3 :) Last-Modified - как работал, так и работает. Насколько я понимаю, единственная ситуация, которая хоть как-то затронута - это когда есть только ETag (и соответственно убирается gzip-фильтром), а Last-Modified - нет совсем. -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru