Использование http2 “приведёт к ускорению загрузки страниц и повысит отзывчивость веб-сайтов…” – Даниэль Штенберг, участник группы HTTPbis IETF, разработавшей протокол http2
Прежде всего, необходимо понять, чем отличаются особенности функционирования обоих протоколов.
Протокол HTTP1 состоит из огромного количества мелких деталей и опций, в которые можно вносить изменения. Это делает его уже не простым прямолинейным протоколом, каким его воспринимали раньше. И как результат, загрузка страниц сайтов происходит медленнее, не зависимо от того, насколько высокоскоростное подключение используется.
Для решения проблемы с задержкой скорости применяются такие оптимизационные хаки, как создание спрайтов, шардинг, фрагментирования доменов, встраивание, объединение. Все это несет и негативные последствия для других сфер сетевой производительности.
Обновленный протокол HTTP2 — более усовершенствованный. Он является бинарным. В отличие от своего предшественника, в протоколе HTTP2 сервер может отправлять клиенту не только ответ на запрос, но еще и дополнительные данные, которые предположительно могут понадобиться клиенту в дальнейшем. Такие данные уже не нужно будет запрашивать с сервера. Они отправляются в кеш клиента по инициативе сервера (механизм Server push) и будут использованы, когда появится такая необходимость. Помимо этого механизма, также используется мультиплексирование (для преодоления проблемы «head-of-line blocking»), сжатие и приоритезация запросов.
Как видно на схеме, изменился способ и вид передачи данных в цепи сервер-клиент. Это уменьшает нагрузку на сеть и упрощает обработку и реализацию команд по сравнению с HTTP1.
Благодаря использованию таких мер и, как результат, уменьшению задержек при обработке запросов браузера реализуется главная цель создания HTTP2 протокола — высокая производительность, устойчивость и простота.
Кроме преимущества протокола HTTP2 с точки зрения производительности, также отмечается улучшенный механизм защиты данных: шифрование стало быстрее, сжатие данных в HTTP-заголовках происходит с помощью улучшенных алгоритмов HPACK.
Большинство браузеров, например, Chrome, Firefox, Safari и др., а также мобильных браузеров (Android Browser, Chrome для iOS и Android) поддерживают HTTP2.
Таким образом, видно, что многие преимущества протокола HTTP2 соответствуют основным целям его создания, а именно:
• уменьшение задержек доступа для ускорения загрузки страниц;
• сохранение совместимости с широко внедрёнными применениями HTTP;
• поддержка совместимости со многими концепциями HTTP 1.1;
• добавление механизмов согласования протокола.