Ускорьте сайт с HTTP/3

6 июня 2022 года IETF была анонсирована публикация целого ряда стандартов Интернета, рационализирующих и модернизирующих HTTP. Среди основного – публикация нового протокола передачи данных HTTP/3.

Следуя мировым тенденциям и стандартам, мы также решили ввести поддержку HTTP/3 для ваших сайтов. Новый протокол передачи данных уже доступен для клиентов на Turbo NVMe тарифах.

HTTP – в чём суть?

HTTP (Hypertext Transfer Protocol) – универсальный протокол передачи гипертекста. На самом деле, абсолютно все текстовые данные на всех сайтах в Интернете передаются через HTTP.

В чем разница между HTTP/3 и предыдущими протоколами HTTP/1.1 и HTTP/2?

HTTP/2 разрабатывался с целью максимального ускорения загрузки ресурсов, прежде всего в визуальном плане. HTTP/3 эволюционно продвинулся дальше – он устанавливает соединение еще быстрее за счет протокола QUIC. Суть последнего состоит в совмещенных в одно транспортного и криптографического «рукопожатий».

Как результат – экономится целый цикл приема-передачи → быстрее устанавливается соединение  → скорость загрузки элементов сайта в разы повышается. 

Давайте выясним, в чем принципиальная различие HTTP/3 и предыдущих HTTP/1.1 и HTTP/2-версий?

HTTP/1.1 и HTTP/2 юзают TCP-соединение (transmission control protocol), HTTP/3 же работает с помощью протокола QUIC, использующего соединение UDP (user datagram protocol). В чём разница?

TCP требует подтверждения доставки – ответа от клиента, которому доставляется пакет данных. С этой целью нужно заранее установить соединение. 

А вот для работы UDP такое предварительное соединение не нужно, поэтому пакеты данных доставляются в разы стремительнее. Это, по сути, определяющая фича, которая так нужна проектам, рассчитанным на быстрый обмен данными и высокую пропускную способность. 

Мультиплексирование

Тогда как в HTTP/1.1 для каждого элемента требуется отдельное соединение, HTTP/2 позволяет загружать все элементы сайта с помощью всего-навсего одного соединения TCP между браузером и сервером. Это и есть мультиплексирование.

HTTP/3 для еще большей скорости загрузки сайта также использует метод мультиплексирования, но за счет транспортного протокола UDP. Он отправляет несколько потоков данных одновременно с целью компенсации тех, которые теряются по пути.

Заголовки

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

В HTTP/3  для еще лучшей оптимизации, QUIC юзает краткие заголовки, а также специализированные небольшие пакеты (фреймы), чтобы передавать дополнительную информацию. В противоположность к TCP, который для отправки абсолютно всех метаданных  использует всего один закрепленный заголовок.

Server-push

Технологию server-push поджидали с выходом HTTP/2. Ее суть заключалась в следующем: сервер, не дожидаясь запроса от браузера, сразу посылал, кроме самой страницы, еще и дополнительную, необходимую для ее отображения инфу, например файлы JavaScript и CSS.

Спустя 5 лет выяснилось, что эта технология нестойкая в продакшене. Поэтому в HTTP/3 функция эта не реализована.

Повышенная безопасность для пользователей

В HTTP/1, как и в HTTP/2 (принципиально активный только для безопасных соединений) на уровне безопасности используется протокол, отвечающий за шифрование передаваемых данных – TLS. 

Происходит это следующим образом – когда на вашем сайте установлен SSL-сертификат, он работает через HTTPS: для начала происходит шифрование открытого текста на уровне TLS и уже в зашифрованном виде он принимается транспортным протоколом TCP.

В HTTP/3 же отказываются от определения открытого текста и встраивают TLS прямо в QUIC – четкие границы между протоколами размываются и выходит, что невозможно юзать QUIC без TLS. К тому же, QUIC (соответственно HTTP/3 тоже) всегда насквозь зашифрованы. Как-то так и получается, что у злоумышленников, которые хотели перехватить данные, практически не остается никаких шансов.

Это встроенное шифрование еще и ускоряет HTTP/3. В обычном HTTPS трехстороннее рукопожатие TCP должно завершиться на транспортном уровне, и произойти до момента, пока между клиентом и сервером отправятся реальные данные. QUIC же объединяет эти два рукопожатия таким образом, что они происходят одновременно. Клиент и сервер подтверждают, что соединение открыто, и одновременно генерируют ключи шифрования TLS.

Приоритетность

Значительный прирост скорости загрузки сайта для пользователей достигается за счет приоритетности загрузки контента. Отдельный поток существует со своим приоритетом, поэтому, в случае с длинной страницей, сначала будет загружаться верхний ее фрагмент. Эта идея реализована и в HTTP/2, и в HTTP/3.

Все это позволяет существенно экономить сетевые и серверные ресурсы, а также исключает задержки, необходимые при установке новых последующих соединений. Сайты загружаются гораздо быстрее, что особенно заметно на смартфонах и планшетах.

PS: Как проверить, включены ли QUIC и HTTP/3?

Вариант 1. Вы можете проверить свой сайт или любой другой сайт в Интернете, используя бесплатный инструмент HTTP/3 Check от LiteSpeed. Нужно просто ввести URL и приложение покажет вам, поддерживается ли HTTP/3 этим сайтом. Также отобразится информация о соединении.

Вариант 2. Устанавливаем расширение Chrome HTTP/2 и SPDY indicator. Значок синей молнии означает, что HTTP/2 включен. Значок зеленой молнии отображается при использовании HTTP/3.

Вывод

Для еще большего ускорения нужно установить плагин LiteSpeed Cache. С ним веб-сайт будет загружаться еще быстрее благодаря кэшированию на уровне веб-сервера.

Хотите, чтобы сайт работал в разы быстрее по протоколу HTTP/3? Для этого достаточно перейти на сверхбыстрые тарифы Turbo NVMe Хостинга. Все сайты этих тарифов размещаются на LiteSpeed веб-сервере с поддержкой HTTP/3.​​​​