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