При анализе откликов на свою статью "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 или микросервис с которым общаются другие микросервисы).
При анализе откликов на свою статью "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 или микросервис с которым общаются другие микросервисы).
Объяснение: