HTTP/3.0 statûya standarda pêşniyarkirî wergirt

Комитет 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 statûya standarda pêşniyarkirî wergirt

В настоящее время поддержка 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.

Taybetmendiyên sereke yên QUIC:

  • Ewlekariya bilind a mîna TLS (bi bingehîn QUIC şiyana karanîna TLS li ser UDP peyda dike);
  • Kontrola yekbûna herikînê, pêşîgirtina windabûna pakêtê;
  • Hêza sazkirina tavilê têkiliyek (0-RTT, bi qasî 75% bûyeran de dane dikare tavilê piştî şandina pakêta sazkirina girêdanê were veguheztin) û di navbera şandina daxwazek û wergirtina bersivê de derengiya hindiktirîn peyda bike (RTT, Dema Rêwîtiya Dor);
    HTTP/3.0 statûya standarda pêşniyarkirî wergirt
  • Bikaranîna jimareyek rêzek cihêreng dema ku pakêtek ji nû ve veguhezîne, ku ji nezelaliyê di naskirina pakêtên wergirtî de dûr dikeve û ji dema derbasbûnê xilas dibe;
  • Wendakirina pakêtek tenê bandorê li radestkirina çemê ku pê re têkildar e dike û radestkirina daneyan di çemên paralel ên ku bi pêwendiya heyî ve têne veguheztin rawestîne;
  • Taybetmendiyên rastkirina xeletiyê ku derengiyên ji ber veguheztina pakêtên winda kêm dikin. Bikaranîna kodên rastkirina xeletiya taybetî di asta pakêtê de ji bo kêmkirina rewşên ku ji nû ve veguheztina daneya pakêtê ya windakirî hewce dike.
  • Sînorên blokên krîptografîk bi sînorên pakêtê yên QUIC re têne hev kirin, ku bandora windabûna pakêtê li ser deşîfrekirina naveroka pakêtên paşîn kêm dike;
  • Pirsgirêkên astengkirina rêza TCP-ê tune;
  • Piştgiriya ji bo nasnavê girêdanê, ku dema ku hewce dike ku ji bo xerîdarên mobîl ji nû ve girêdanê saz bike kêm dike;
  • Ihtîmala girêdana mekanîzmayên kontrolkirina tevliheviya pêwendiya pêşkeftî;
  • Teknolojiyên pêşbînkirina rêwerziya per-rêveberiyê bikar tîne da ku pê ewle bibe ku pakêt bi rêjeyên çêtirîn têne şandin, pêşî li qelişîna wan û sedema windabûna pakêtê digire;
  • Zêdebûnek girîng di performans û berbikê de li gorî TCP. Ji bo karûbarên vîdyoyê yên wekî YouTube, QUIC hate destnîşan kirin ku dema ku vîdyoyan temaşe dike 30% operasyonên rebufferkirinê kêm dike.

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

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

Source: opennet.ru

Add a comment