Hello! On Thu, May 02, 2019 at 11:53:38AM +0300, Vladimir Getmanshchuk wrote:
> Максим, если найдете свободную минуту - расскажите пожалуйста почему. > Спасибо. Потому что HTTP/2 не предусматривает возможности что-то делать с соединением, в частности - connection-related-заголовки явно запрещены стандартом[1]. А вебсокеты работают через Upgrade соединения в другой протокол, с помощью заголовков "Upgrade: websocket" и "Connection: upgrade". То есть вебсокеты явно запрещены стандартом HTTP/2. И даже примечание есть: Note: HTTP/2 purposefully does not support upgrade to another protocol. The handshake methods described in Section 3 are believed sufficient to negotiate the use of alternative protocols. Если бы авторы протокола подумали головой и просто честно определили мультиплексирование stream'ов - проблемы бы не было, и мы бы это без особых проблем поддержали. Но нет. А поскольку явно запрещено - то и пытаться поддерживать смысла нет. Так что вебсокеты продолжают работать по HTTP/1.1. Что, впрочем, представляется мне правильным - как протокол HTTP/2 оставляет желать, и это далеко не единственная его проблема. (Делались попытки вебсокеты таки в HTTP/2 впихнуть - в частности, в прошлом году принят RFC 8441, "Bootstrapping WebSockets with HTTP/2"[2]. Через 3 года после принятия стандарта HTTP/2. Но это, скажем так, выглядит как хак, при этом малосовместимый с существующей логикой работы через Upgrade, и имеет мало шансов быть поддержанным.) [1] https://tools.ietf.org/html/rfc7540#section-8.1.2.2 [2] https://tools.ietf.org/html/rfc8441 > On Tue, Apr 30, 2019 at 5:39 PM Maxim Dounin <mdou...@mdounin.ru> wrote: > > > Hello! > > > > On Tue, Apr 30, 2019 at 01:58:20PM +0500, Илья Шипицин wrote: > > > > > привет, > > > > > > насколько опасно вот такое ? > > > > > > > > > 2019/04/29 21:52:39 [alert] 1714#1714: *168061675 epoll_ctl(1, 1188) > > failed > > > (17: File exists) while proxying upgraded connection, client: > > > 82.114.112.115, server: market.kontur.ru, request: "GET /wsapi/ > > HTTP/2.0", > > > upstream: "http://192.168.188.40:2339/wsapi/", host: "xxx.xxx.xxx" > > > > Судя по всему, имеет место попытка запихнуть вебсокеты в HTTP/2. > > Работать - не будет. [...] -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru