Re: Проблемы с бэкэндом на http2
Валентин Бартенев
vbart на nginx.com
Пн Окт 19 15:34:53 UTC 2015
On Monday 19 October 2015 17:50:07 Konstantin Tokarev wrote:
>
> 19.10.2015, 17:29, "Maxim Konovalov" <maxim на nginx.com>:
> > On 10/19/15 5:25 PM, Evgeniy Berdnikov wrote:
> >> Насколько я понимаю, http2 это попытка гугловцев достичь
> >> некоторых политических целей, прикрываясь решением частных
> >> технических проблем. Цель -- повсеместно внедрить шифрование (не
> >> будем обсуждать зачем), а решаемой задачей является снижение
> >> удельного оверхеда на tls-ный хендшейк за счёт
> >> мультиплексирования коннекций. Это имеет смысл лишь для клиентов
> >> с большим rtt до сервера.
> >
> > Если говорить в контексте http2 vs http1 без tls, то это для такого
> > юзкейса оно даже вредно просто за счет сокращения количества
> > одновременно используемых tcp соединений.
>
> А как же бинарный формат, который быстрее парсить, и сжатие заголовков?
> Получается, что старые добрые FastCGI и uWSGI в этом плане лучше?
>
Сжатие в http/2 сделано весьма неудачно и вызывает целый ряд нареканий.
Если не использовать куки на несколько килобайт, то экономия весьма
призрачная, а вот проблем с ним куча.
Бинарный формат HTTP/2 - в какой-то степени миф. Бинарщина используется
исключительно на транспортном уровне (т.е. для того, чем в http/1.x
занимается TCP).
Иными словами, они сначала добавили еще один транспортный уровень, а затем
сделали его бинарным, plaintext-овая семантика заголовков при этом осталась
от http/1.x. Это не улучшение, а добавление новой сущности и попытка сделать
так, чтобы эта новая сущность не вносила слишком много дополнительных издержек
(сколько-то она все равно вносит).
Отдельно замечу, что бинарщина в http/2 не выровнена, что ограничивает её
эффективность.
Дополнительные накладные расходы и замедление в http/2 вносит сложность
правильной реализации flow control.
Как результат:
http://mailman.nginx.org/pipermail/nginx-ru/2015-October/056870.html
http://mailman.nginx.org/pipermail/nginx/2015-October/048939.html
Я бы не рекомендовал HTTP/2 к использованию за пределами браузеров.
--
Валентин Бартенев
Подробная информация о списке рассылки nginx-ru