HTTP. Что такое протокол HTTP/2

HTTP протокол (англ. «протокол передачи гипертекста») — сетевой протокол верхнего уровня для передачи гипертекстовых и произвольных данных в интернете.

При помощи протокола HTTP браузер получает данные от веб-серверов и может отображать их в приемлемом и понятном для интернет-пользователей виде. Точно также происходит и обратный процесс — отправку пользовательских данных обратно, на сервер.

В HTTP 1.1 браузеры используют множественные подключения к серверу для загрузки веб-страницы, причем, количество таких соединений ограниченно. Из-за ограничения на количество одновременных подключений в HTTP/1.1 загрузка страниц, содержащих большое количество «тяжёлого» контента, осуществляется медленно. Причем скорость загрузки веб-страниц по мере роста пропускной способности канала связи практически не меняется. Неэффективная структура протокола HTTP 1.1 препятствует этому.

Что бы решить проблему с подключениями был разработан новый протокол HTTP/2. Финальная версия черновика протокола была опубликована в 2015 году. Протокол HTTP/2 получился более подготовленным к современным реалиям, чем прародитель HTTP 1.1 потому что новый протокол решил наиболее существенную проблему передачи данных в интернете — несколько отрытых соединений. Причем при использовании нового протокола увеличивается скорость загрузки веб-страниц, но и снижается нагрузка на сервер.

схема работы протоколов

Главные отличия HTTP/2 от HTTP

Бинарность

В отличие от текстового HTTP 1.1, HTTP/2 — бинарный. Поэтому протокол более эффективен при парсинге, более компактный при передаче, подвержен меньшему количеству ошибок.

Соединения

Несколько запросов могут быть отправлены через одно TCP-соединение, и ответы могут быть получены в любом порядке. Отпадает необходимость держать несколько TCP-соединений

Приоритеты потоков

Клиент может задавать серверу приоритеты — какого типа ресурсы для него более важны, чем другие

Push-отправка данных со стороны сервера

Cache Push, позволяют с упреждением обновлять или аннулировать кэш на клиенте. При этом сервер способен определять ресурсы, которые могут понадобиться клиенту, которые он на самом деле не запрашивал.

Сжатие заголовков

В HTTP/2 заголовки передаются в сжатом виде. Благодаря этому уменьшается количество информации, которой обмениваются между собой сервер и браузер. Вместо алгоритмов gzip/deflate используется HPACK. Это снижает уязвимость к атакам типа BREACH.

Безопасность

Протокол HTTP/2 не требует шифрования канала. Тем не менее, все современные браузеры работают с HTTP/2 только вместе с TLS.

Обратная совместимость

HTTP/2 обратно совместим с HTTP/1.1. Поэтому вы в принципе можете не предпринимать никаких действий: работе вашего сервиса ничего не угрожает.

Как включить HTTP/2?

Nginx

Нормальная реализация HTTP2 появилась в версии nginx 1.9.5. Собственно поэтому и понадобилось обновиться до этой версии. Ну а подключить поддержку этого протокола еще легче. Правим конфиг nginx, добавляем http2 в listen: listen 433 ssl http2;

Apache

В Apache HTTP/2 поддерживается только в версиях 2.4.17 и выше. Если у вас установлена более ранняя версия, выполните обновление и подключите модуль mod_http2. После этого добавьте в конфигурационный файл следующие строки:

# for a https serverProtocols h2 http/1.1

for a http server

Protocols h2c http/1.1

Итог

Протокол HTTP/2 уже значительно оптимизирован, по сравнению с HTTP 1.1, так что простое внедрение новой спецификации способно улучшить производительность веб-сервисов. А отключение дополнительных ухищрений, которые использовались для ускорения HTTP 1.1 поможет воспользоваться всеми преимуществами HTTP/2.

Еще по теме HTTP протокол

Что такое протокол HTTP?

Коды ответа HTTP сервера

Коды ответа сервера. Самые распространенные коды (коды состояния HTTP)

admin

Recent Posts

После включения диагностического запуска не удается войти в Windows — как исправить?

Некоторые пользователи, экспериментируя с конфигурацией системы в окне msconfig могут столкнуться с ситуацией, когда после…

1 неделя ago

WinScript — очистка и настройка Windows 11 и 10

На сайте не раз публиковались обзоры программ, предназначенных для очистки или настройки последних версий Windows.…

1 неделя ago

Предварительный просмотр накопительного обновления не устанавливается — решение

При установке некоторых обновлений Windows 11, имеющих в названии «Предварительный просмотр накопительного обновления», многие пользователи…

1 неделя ago

FixExec — восстановление ассоциаций .exe, .bat и .com файлов

Некоторые пользователи Windows 11, 10 и предыдущих версий системы могут столкнуться с ситуацией, когда исполняемые…

1 неделя ago

Ошибка 0x800705b4 при обновлении Windows 11 и 10 — как исправить?

При установке обновлений Windows 11/10 некоторые пользователи могут столкнуться с ошибкой с кодом 0x800705b4 и…

1 неделя ago

Обслуживание вашей версии Windows 11 окончено — что делать?

Пользователи Windows 11 могут столкнуться с сообщением «Обслуживание вашей версии Windows окончено» (Your version of…

1 неделя ago