HTTP/2 принес много полезного. Но здесь всё ещё есть, что улучшить — особенно head-of-line blocking in TCP, которая становится проблемой в медленных сетях. HTTP/3
решает и эти проблемы (
видео).
Для решения проблем HTTP/2, IETF, вместе с Google, Akamai и другими, работает над новым протоколом, который недавно
был стандартизован как HTTP/3.
Робин Маркс (Robin Marx)
очень хорошо объяснил суть HTTP/3. С точки зрения возможностей HTTP/3 очень похож на HTTP/2, но под капотом он работает совсем по-другому. В
HTTP/3 хэндшейки быстрее, шифрование и стриминг надёжнее и лучше. HTTP/3 использует в качестве транспорта QUIC, которые являются легковесной оберткой вокруг UDP датаграмм.
QUIC полностью интегрирует TLS 1.3 в протокол, в то время как для TCP он является отдельным слоем. По сравнению с обычным TCP-стеком, QUIC использует меньше запросов. Для обычного стека TCP и TLS используют разные хендшейки, в QUIC можно объединить TLS и TCP хендшейки и выполнить меньше запросов. С TLS 1.3 можно делать еще меньше запросов, используя 0-RTT.
В HTTP/3 Также был полностью переписан алгоритм сжатия заголовков HTTP/2 и система приоритезации. Кроме того, QUIC обеспечивает бесшовный переход с Wi-Fi на сотовую сеть (для этого используются специальные идентификаторы соединений).
Сильно ли переход на HTTP/3 влияет на производительность?
Вероятно, да. Особенно для мобильных устройств. HTTP/2 умеет мультиплексировать соединение, также как и HTTP/3. Но вдобавок к этому HTTP/3 изолирует отдельные стримы, поэтому потеря пакетов влияет только на один стрим, а не на все сразу.
HTTP/3 всё ещё находится
в стадии разработки. У Chrome, Firefox и Safari
уже есть реализации. Некоторые
CDN уже поддерживают QUIC и HTTP/3. В конце 2020 года
Chrome начал развертывание HTTP/3 и IETF QUIC. Фактически все сервисы Google (Google Analytics, YouTube и т. д.) уже работают через HTTP/3.
Веб-сервер LiteSpeed поддерживает HTTP/3. Ни Apache, ни nginx, ни IIS еще не поддерживают его, но, скорее всего, ситуация будет быстро меняться.
Итого: использовать HTTP/3 на сервере и в CDN — отличная идея. Эта область еще недостаточно исследована, но
первые результаты многообещающие.
Если вы хотите подробнее ознакомиться с особенностями и преимуществами HTTP/3 протокола, Виталий Фридман советует обратиться к следующим источникам: