HTTP/3.0 irċieva status standard propost

Комитет IETF (Internet Engineering Task Force), занимающийся развитием протоколов и архитектуры интернета, завершил формирование RFC для протокола HTTP/3.0 и опубликовал связанные с ним спецификации под идентификаторами RFC 9114 (протокол) и RFC 9204 (технология сжатие заголовков QPACK для HTTP/3). Спецификация HTTP/3.0 получила статус «Предложенного стандарта», после чего начнётся работа по приданию RFC статуса чернового стандарта (Draft Standard), фактически означающего полную стабилизацию протокола и учёт всех высказанных замечаний. Одновременно опубликованы обновлённые варианты спецификаций для протоколов HTTP/1.1 (RFC 9112) и HTTP/2.0 (RFC 9113), а также документы, определяющие семантику HTTP-запросов (RFC 9110) и HTTP-заголовки управления кэшированием (RFC 9111).

Протокол HTTP/3 определяет использование протокола QUIC (Quick UDP Internet Connections) в качестве транспорта для HTTP/2. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования, эквивалентные TLS/SSL. Протокол был создан в 2013 году компанией Google в качестве альтернативы связке TCP+TLS для Web, решающей проблемы с большим временем установки и согласования соединений в TCP и устраняющей задержки при потере пакетов в процессе передачи данных.

HTTP/3.0 irċieva status standard propost

В настоящее время поддержка QUIC и HTTP/3.0 уже реализована во всех популярных web-браузерах (в Chrome, Firefox и Edge поддержка HTTP/3 включена по умолчанию, а в Safari требует включения настройки «Advanced > Experimental Features > HTTP/3»). На серверной стороне реализации HTTP/3 доступны для nginx (в отдельной ветке и в форме отдельного модуля), Caddy, IIS и LiteSpeed. Поддержку HTTP/3 также обеспечивает сеть доставки контента Cloudflare.

Karatteristiċi ewlenin ta' QUIC:

  • Sigurtà għolja simili għal TLS (essenzjalment QUIC jipprovdi l-abbiltà li tuża TLS fuq UDP);
  • Kontroll tal-integrità tal-fluss, li jipprevjeni t-telf tal-pakketti;
  • Il-ħila li tistabbilixxi konnessjoni istantanjament (0-RTT, f'madwar 75% tal-każijiet id-dejta tista 'tiġi trażmessa immedjatament wara li jintbagħat il-pakkett tas-setup tal-konnessjoni) u tipprovdi dewmien minimu bejn li tibgħat talba u tirċievi tweġiba (RTT, Round Trip Time);
    HTTP/3.0 irċieva status standard propost
  • L-użu ta 'numru ta' sekwenza differenti meta jerġa 'jitrażmetti pakkett, li jevita l-ambigwità fl-identifikazzjoni ta' pakketti riċevuti u jeħles mill-timeouts;
  • Telf ta 'pakkett jaffettwa biss il-kunsinna tal-fluss assoċjat miegħu u ma jwaqqafx il-kunsinna ta' data fi flussi paralleli trażmessi permezz tal-konnessjoni kurrenti;
  • Karatteristiċi ta 'korrezzjoni ta' żbalji li jimminimizzaw id-dewmien minħabba trażmissjoni mill-ġdid ta 'pakketti mitlufa. Użu ta' kodiċijiet speċjali ta' korrezzjoni ta' żbalji fil-livell tal-pakkett biex jitnaqqsu s-sitwazzjonijiet li jeħtieġu trażmissjoni mill-ġdid tad-dejta tal-pakkett mitlufa.
  • Il-konfini tal-blokok kriptografiċi huma allinjati mal-konfini tal-pakketti QUIC, li jnaqqas l-impatt tat-telf tal-pakketti fuq id-dekodifikazzjoni tal-kontenut tal-pakketti sussegwenti;
  • Ebda problemi bl-imblukkar tal-kju TCP;
  • Appoġġ għall-identifikatur tal-konnessjoni, li jnaqqas iż-żmien li jieħu biex tiġi stabbilita konnessjoni mill-ġdid għall-klijenti mobbli;
  • Possibbiltà ta' konnessjoni ta' mekkaniżmi avvanzati ta' kontroll tal-konġestjoni tal-konnessjoni;
  • Juża tekniki ta' tbassir ta' throughput għal kull direzzjoni biex jiżgura li l-pakketti jintbagħtu b'rati ottimali, u ma jħallihomx isiru konġestjonati u jikkawżaw telf ta' pakketti;
  • Żieda sinifikanti fil-prestazzjoni u t-trażmissjoni meta mqabbla ma 'TCP. Għal servizzi tal-vidjo bħal YouTube, QUIC intwera li jnaqqas l-operazzjonijiet ta 'rebuffering meta jaraw vidjows bi 30%.

Из изменений в спецификации HTTP/1.1 можно отметить запрет на обособленное использование символа возврата каретки (CR) вне тела с содержимым, т.е. в элементах протокола символ CR может применяться только вместе с символом перевода строки (CRLF). Алгоритм компоновки chunked-запросов доработан для упрощения разделения прикреплённых полей и секции с заголовками. Добавлены рекомендации по обработке неоднозначного содержимого для блокирования атак класса «HTTP Request Smuggling», позволяющих вклиниваться в содержимое запросов других пользователей в потоке между фронтэндом и бэкендом.

В обновлении спецификации HTTP/2.0 явно определена поддержка TLS 1.3. Переведена в категорию устаревших схема определения приоритетов и связанные с ней поля в заголовках. Объявлен устаревшим не получивший распространения механизм обновления соединения с HTTP/1.1. Сокращены требования к проверке имён полей и значений. Предложены для использования некоторые ранее зарезервированные типы кадров и параметры. Более точно определены запрещённые поля заголовков, относящиеся к соединению.

Sors: opennet.ru

Żid kumment