HTTP/3.0 санал болгож буй стандарт статусыг хүлээн авсан

Комитет 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 санал болгож буй стандарт статусыг хүлээн авсан

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

QUIC-ийн гол онцлогууд:

  • TLS-тэй төстэй өндөр хамгаалалт (үндсэндээ QUIC нь UDP дээр TLS ашиглах боломжийг олгодог);
  • Урсгалын бүрэн бүтэн байдлыг хянах, пакет алдагдахаас урьдчилан сэргийлэх;
  • Холболтыг нэн даруй үүсгэх чадвар (0-RTT, ойролцоогоор 75% тохиолдолд холболтын тохиргооны багцыг илгээсний дараа өгөгдлийг шууд дамжуулах боломжтой) ба хүсэлт илгээх болон хариу хүлээн авах хооронд хамгийн бага саатал гаргах (RTT, хоёр талын аялалын хугацаа);
    HTTP/3.0 санал болгож буй стандарт статусыг хүлээн авсан
  • Пакетийг дахин дамжуулахдаа өөр дарааллын дугаар ашиглах нь хүлээн авсан пакетуудыг тодорхойлоход хоёрдмол байдлаас зайлсхийж, хугацаа хэтрэхээс сэргийлдэг;
  • Пакет алдагдах нь зөвхөн түүнтэй холбоотой урсгалын дамжуулалтад нөлөөлж, одоогийн холболтоор дамждаг зэрэгцээ урсгалд өгөгдөл дамжуулахыг зогсоохгүй;
  • Алдагдсан пакетуудыг дахин дамжуулахтай холбоотой саатлыг багасгах алдаа засах функцууд. Алдагдсан пакет өгөгдлийг дахин дамжуулах шаардлагатай нөхцөл байдлыг багасгахын тулд багцын түвшинд алдаа засах тусгай кодыг ашиглах.
  • Криптографийн блокийн хил нь QUIC багцын хил хязгаартай нийцдэг бөгөөд энэ нь дараагийн пакетуудын агуулгыг тайлахад пакет алдагдлын нөлөөллийг бууруулдаг;
  • TCP дарааллыг блоклоход асуудал байхгүй;
  • Мобайл үйлчлүүлэгчдэд дахин холболт хийхэд шаардагдах хугацааг багасгасан холболтын танигчийг дэмжих;
  • Холболтын түгжрэлийг хянах дэвшилтэт механизмуудыг холбох боломж;
  • Пакетуудыг оновчтой хурдаар илгээж, ачаалал ихсэх, пакет алдагдахаас урьдчилан сэргийлэхийн тулд чиглэл тус бүрээр дамжуулах чадварыг таамаглах арга техникийг ашигладаг;
  • TCP-тэй харьцуулахад гүйцэтгэл, дамжуулах чадварын мэдэгдэхүйц өсөлт. YouTube гэх мэт видео үйлчилгээний хувьд QUIC нь видео үзэх үед няцаах ажиллагааг 30%-иар бууруулдаг болохыг харуулсан.

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

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

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх