Последнее время достаточно часто можно слышать про протокол HTTP/2. Что это такое и зачем нам нужен данный протокол?
Современные сайты состоящие из большого количества статических элементов, при загрузке инициируют на каждый элемент статики отдельное TCP-соединение. Это создает определенную задержку при загрузке сайта. Мультиплексирование позволяет браузеру выполнять множество запросов в рамках одного TCP-соединения — это самое главное преимущество HTTP/2. Также важным требованием протокола HTTP/2 является обязательное шифрование (HTTPS).
Если вы используете HTTP/2 на базе Nginx, то с 31 мая 2016 года он перестал работать в Chrome и остальных браузерах.
Для использования HTTP/2 протокола требуется поддержка переключения с обычного TLS на HTTP/2. Существует две реализации переключения: NPN (Next Protocol Negotiation) и ALPN (Application-Layer Protocol Negotiation). При этом первая реализация устарела и заменёна второй. При этом для работы второй реализации — ALPN, нужен OpenSSL версии (1.0.2+), более старые поддерживают только NPN.
(далее…)