Короткие байты: HTTP / 2 или HTTP Version 2 является второй основной версией сетевого протокола HTTP. Он основан на SPDY / 2 для значительного улучшения производительности сети. HTTP / 2 разработан рабочей группой по протоколу передачи гипертекста Целевой группы по инженерным проблемам интернета.
HTTP 1.1 был основным шагом по сравнению с HTTP 1.0, так как он позволял сохранять постоянные соединения (более одного запроса / ответа на одно и то же HTTP-соединение), улучшенное кэширование, новый код состояния, улучшенную поддержку сжатия, метод OPTION для перекрестного общего доступа к ресурсам в веб-приложении и гораздо более.
HTTP / 1.1 хорошо работает в Интернете уже более пятнадцати лет, но его возраст начинает проявляться. Загрузка веб-страницы требует больше ресурсов, чем когда-либо, а эффективная загрузка всех этих ресурсов затруднена, поскольку HTTP практически допускает только один невыполненный запрос на каждое соединение TCP.
Из-за этого многие TCP-соединения создаются для выдачи параллельных запросов. И поскольку нет никаких ограничений на это; в большинстве случаев используется слишком много соединений, что приводит к перегрузке TCP и несправедливому использованию ресурсов браузерами. Это также означает, что много дубликатов данных передается «по проводам».
Если сделано слишком много запросов, это снижает производительность. Это привело отрасль к тому, что в соответствии с передовой практикой используются такие вещи, как спрайты, данные: встраивание, разбиение областей и объединение. Эти хаки являются признаками основных проблем в самом протоколе и сами по себе вызывают ряд проблем при использовании.
HTTP / 2, с другой стороны, позволяет более эффективно использовать сетевые ресурсы и уменьшить восприятие задержки благодаря введению сжатия поля заголовка и разрешению нескольких одновременных обменов по одному и тому же соединению. Это также вводит незапрашиваемую передачу представлений от серверов клиентам. Эта спецификация является альтернативой синтаксису сообщений HTTP / 1.1, но не устарела. Существующая семантика HTTP остается неизменной.
На высоком уровне HTTP / 2:
- является двоичным, а не текстовым
- полностью мультиплексирован, а не упорядочен и блокируется
- поэтому можно использовать одно соединение для параллелизма
- использует сжатие заголовка, чтобы уменьшить накладные расходы
- позволяет серверам активно «проталкивать» ответы в клиентские кеши
Узнайте больше о HTTP / 2 здесь.
Мы что-то пропустили? Дайте нам знать в комментариях ниже.