недавно IETF (Internet Engineering Task Force), которая разрабатывает протоколы и архитектуру Интернета, сделал это известным новости, которые завершено формирование RFC для протокола HTTP/3.0 и опубликовал соответствующие спецификации под идентификаторами RFC 9114 и RFC 9204.
Спецификация HTTP/3.0 получил статус «Предлагаемый стандарт», после чего начнется работа по приданию RFC статуса проекта стандарта (Draft Standard), что фактически означает полную стабилизацию протокола и учет всех высказанных замечаний.
протокол HTTP/3 определяет использование протокола QUIC. (Быстрое подключение к Интернету по протоколу UDP) как транспорт для HTTP/2. QUIC — это плагин к протоколу UDP, который поддерживает мультиплексирование нескольких соединений и предоставляет методы шифрования, эквивалентные TLS/SSL.
Протокол был создан в 2013 году компанией Google. как альтернатива TCP + TLS для Интернета, решающая проблему долгой установки соединения и времени согласования в TCP и устраняющая задержки из-за потери пакетов при передаче данных.
В настоящее время, Поддержка QUIC и HTTP/3.0 уже реализована во всех браузерах. популярные сайты. На стороне сервера доступны реализации HTTP/3 для nginx (в отдельной ветке и в виде отдельного модуля), Caddy, IIS и LiteSpeed. HTTP/3 также поддерживается сетью доставки контента Cloudflare.
Основные возможности QUIC:
- Высокая безопасность, аналогичная TLS (на самом деле QUIC предоставляет возможность использовать TLS поверх UDP)
- Контроль целостности передачи для предотвращения потери пакетов
- Возможность мгновенно установить соединение и обеспечить минимальные задержки между отправкой запроса и получением ответа (RTT, время приема-передачи)
- Использовать другой порядковый номер при повторной передаче пакета, что позволяет избежать двусмысленности при определении полученных пакетов и избавиться от тайм-аутов
- Потеря пакета влияет на доставку только связанного с ним потока и не останавливает доставку данных в потоках, передаваемых параллельно через текущее соединение.
- Инструменты исправления ошибок, минимизирующие задержки из-за повторной передачи потерянных пакетов. Использование специальных кодов исправления ошибок на уровне пакетов для уменьшения количества ситуаций, требующих повторной передачи потерянных пакетных данных.
- Границы криптографических блоков совмещены с границами пакетов QUIC, что снижает влияние потери пакетов на декодирование содержимого последующих пакетов.
- Нет проблем с блокировкой очереди TCP
- Поддержка идентификации подключения для сокращения времени повторного подключения для мобильных клиентов
- Возможность подключения продвинутых механизмов контроля перегрузки соединения
- Используйте методы прогнозирования пропускной способности в каждом направлении, чтобы обеспечить оптимальную скорость пересылки пакетов, избегая условий перегрузки, при которых пакеты теряются.
- Заметная производительность и прирост производительности по сравнению с TCP. Было показано, что для видеосервисов, таких как YouTube, QUIC сокращает операции буферизации видео на 30%.
Помимо этого, также одновременно были опубликованы обновленные версии спецификаций протоколов HTTP/1.1 (RFC 9112) и HTTP/2.0 (RFC 9113), а также документы, определяющие семантику HTTP-запросов (RFC 9110) и заголовки управления кэшированием HTTP (RFC 9111).
Об изменениях в спецификация HTTP/1.1, можно заметить бан от отдельного использования символа возврата каретки (CR) вне тела с содержимым, то есть в элементах протокола символ CR может использоваться только вместе с символом новой строки (CRLF).
El улучшен алгоритм компоновки запросов по частям для упрощения разделения вложенных полей и разделов заголовками. Добавлены рекомендации по обработке неоднозначного контента для блокировки атак класса «контрабанда HTTP-запросов», которые могут вторгаться в содержимое запросов других пользователей в потоке между интерфейсом и сервером.
Обновление спецификации HTTP/2.0 явно определяет поддержку TLS 1.3, устаревшая схема приоритизации и связанные с ней поля заголовков и механизм обновления устаревшее соединение HTTP/1.1 устарело.
Наконец, если вы заинтересованы в том, чтобы узнать больше об этом, вы можете ознакомиться с подробностями в по следующей ссылке.