Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
При анализе откликов на свою статью "HTTP/1 и HTTP/2 сервера на nodejs" пришёл к выводу, что поддержка версии HTTP/2 в настоящее время в nodejs-приложениях находится в этакой суперпозиции: с одной стороны http2-библиотека nodejs позволяет без проблем использовать HTTP/2 в своих приложениях, с другой - наиболее популярный web-сервер (express) до сих пор нативно не поддерживает HTTP/2, а другие популярные web-сервера (koa, hapi) требуют от разработчика дополнительно кодирования для работы с HTTP/2:
const http2 = require('http2');
const Koa = require('koa');
const app = new Koa();
http2.createServer(options, app.callback());
То есть, поддержка HTTP/2 есть, но не похоже, что она сильно используется.
В фокусе моих интересов на данный момент находятся Progressive Web Applications. Такие приложения в принципе не работают без шифрования трафика (http
), им обязательно нужен https
. Современные браузеры поддерживают HTTPS на базе HTTP/2 - с этим проблем нет. Проблема в том, что современные браузеры не поддерживают HTTP/2 без HTTPS. Для production-режима, само собой, нужно получать сертификат, подписанный доверенным центром сертификации. А что делать разработчикам или тестировщикам? В данной ситуации логично использовать HTTP/1.1 (если только ваше приложение не завязано на функционал, присущий только HTTP/2 - как Server Push, и ваше приложение в принципе может работать без шифрования, например - не использует service worker). А возможен ещё вариант, когда ваше приложение находится в "безопасной среде" и ему не нужно шифрование, а вот HTTP/2 наоборот может быть полезным (приложение за прокси сервером в виде nginx или микросервис с которым общаются другие микросервисы).
Итого, я считаю, что современные web-приложения общего назначения должы иметь возможность работать и по HTTP/1.1, и по HTTP/2, в зависимости от конфигурации стартовых параметров, но мне кажется, что в реальности дело обстоит несколько иначе. Что HTTP/2 в nodejs-приложениях распространён куда меньше, чем принято считать.
Прошу коллег, которые имеют отношение к разработке web-прложений в nodejs ответить на вопрос, вынесенный в заголовок публикации.
Спасибо за участие в опросе.