HTTP/3.0 maua tulaga fa'ata'atia

Комитет 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 maua tulaga fa'ata'atia

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

O mea taua ole QUIC:

  • Puipuiga maualuga e tutusa ma le TLS (o le QUIC e maua ai le malosi e faʻaaoga ai le TLS i luga ole UDP);
  • Fa'atonu le sa'o o le tafe, puipuia le gau o pepa;
  • Le mafai ona vave faʻatuina se fesoʻotaʻiga (0-RTT, e tusa ma le 75% o faʻamatalaga faʻamatalaga e mafai ona tuʻuina atu i le taimi lava e uma ai le tuʻuina atu o le seti seti o fesoʻotaʻiga) ma tuʻuina atu sina faʻatuai i le va o le tuʻuina atu o se talosaga ma le mauaina o se tali (RTT, Round Trip Time);
    HTTP/3.0 maua tulaga fa'ata'atia
  • Fa'aaogaina o se numera fa'asologa 'ese'ese pe a toe fa'asalalauina se pepa, lea e 'alofia ai le fa'anumeraina i le fa'ailoaina o pepa na maua ma fa'ate'a'ese ai taimi fa'aletonu;
  • O le leiloa o se afifi e aafia ai naʻo le tuʻuina atu o le vaitafe o loʻo fesoʻotaʻi ma ia ma e le taofia ai le tuʻuina atu o faʻamatalaga i vaitafe tutusa e tuʻuina atu i le fesoʻotaʻiga o loʻo iai nei;
  • Fa'atonuga fa'asa'oga fa'aletonu e fa'aitiitia ai fa'atuai ona o le toe fa'asalalauina o pepa na leiloa. Fa'aaogā fa'ailoga fa'apitoa e fa'asa'o ai mea sese i le tulaga o le afifi e fa'aitiitia ai tulaga e mana'omia ai le toe fa'asalalauina o fa'amaumauga o pepa na leiloa.
  • Cryptographic poloka tuaoi o loʻo ogatusa ma tuaoi o pusa QUIC, lea e faʻaitiitia ai le aʻafiaga o paʻu gau i le faʻavasegaina o mea o loʻo i totonu o pusa mulimuli ane;
  • Leai ni fa'afitauli ile poloka ole TCP;
  • Lagolago mo fa'amatalaga feso'ota'iga, lea e fa'aitiitia ai le taimi e fa'atūina ai se toe feso'ota'iga mo tagata fa'atau feavea'i;
  • Avanoa e fa'afeso'ota'i feso'ota'iga sili atu ona fa'atonutonu le fa'aogaina o masini;
  • Fa'aaogā faiga fa'atatau ile fa'atonuga e fa'amautinoa ai o lo'o lafo atu pusa i tau sili ona lelei, e puipuia ai mai le fa'apipi'i ma mafua ai ona leiloa pepa;
  • Faʻateleina le faʻatupulaia o le faʻatinoga ma le gaosiga faʻatusatusa i le TCP. Mo auaunaga vitio e pei o YouTube, QUIC ua faʻaalia e faʻaitiitia ai le toe faʻaleleia o gaioiga pe a matamata i vitio e 30%.

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

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

puna: opennet.ru

Faaopoopo i ai se faamatalaga