Что такое HTTP/2 ?
ISPmanager
Возможно, читатели скажут, что писать про HTTP/2, когда на подходе новенький HTTP/3, несвоевременно. Но вы удивитесь, как много вебмастеров не знают о преимуществах протокола и не используют его.
Чтобы сравнение было корректным, сначала поговорим об известных проблемах HTTP/1.
- В HTTP/1 примерно 80% времени при отправке данных тратится на ожидание их передачи. Проблема в том числе состоит в ограниченном числе одновременно передаваемых запросов.
- Запросы обрабатываются последовательно. Без ответа на предыдущий нельзя послать следующий.
Представьте, вы зашли в фастфуд, чтобы быстро перекусить (в случае сайта — посмотреть новости или купить что-то), а вам начинают по очереди приносить блюда – салат, бургер, фри и пр. Причем новое не принесут, пока вы не съедите предыдущее. Процесс затягивается, и вам уже хочется уйти без оплаты. HTTP/1.1 ставит несколько костылей: сжимает ресурсы, объединяет файлы, минимизирует CSS и JS, создает параллельные HTTP-соединения. Но все это, решая одни проблемы, создает новые. Например, дополнительные циклы запросов-ответов увеличивают нагрузку на системные ресурсы и замедляют передачу данных, хотя призваны ее ускорять.
HTTP/2 – полностью переработанный протокол. Главное его отличие – применение двоичных данных вместо текстовых. ПК проще работать с двоичным протоколом, да и современный интернет давно не работает только в текстовом формате. Такой подход дает возможность разделять HTTP-данные, а затем отправлять их по частям в отдельных фреймах. Фреймы складываются в полное сообщение. Все запросы отправляются разом, браузеру не нужно формировать очередь, дополнительные доменные соединения больше не нужны. Все блюда разом на одном подносе, если продолжать аналогию.
- Благодаря мультиплексированной асинхронной передаче данных запросы разделяются на чередующиеся пакеты, сгруппированные в отдельные потоки.
- HTTP-заголовки сжимаются: полная информация отправляется только в первом, а во всех остальных ее уже нет.
- HTTP/2 может отправлять все необходимые ресурсы сразу при первом обращении к серверу, в то время как HTTP/1 требовалось сначала получить домашнюю страницу, а уже из нее понять, что нужно для дальнейшего рендеринга.
Страницы будут загружаться быстрее, меньше пользователей будет уходить. На коммерческих сайтах это приведет к значительному снижению отказов и возможному увеличению продаж – выгода очевидна 😎