HTTP/3.0 ha rebut l'estat estàndard proposat

Комитет 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 ha rebut l'estat estàndard proposat

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

Característiques principals de QUIC:

  • Alta seguretat, similar a TLS (de fet, QUIC ofereix la possibilitat d'utilitzar TLS sobre UDP);
  • Control de la integritat del flux per evitar la pèrdua de paquets;
  • La capacitat d'establir una connexió a l'instant (0-RTT, en aproximadament el 75% dels casos les dades es poden transmetre immediatament després d'enviar el paquet de configuració de la connexió) i proporcionar retards mínims entre l'enviament d'una sol·licitud i la recepció d'una resposta (RTT, Temps d'anada i tornada);
    HTTP/3.0 ha rebut l'estat estàndard proposat
  • Utilitzar un número de seqüència diferent quan es retransmet un paquet, que evita l'ambigüitat en la identificació dels paquets rebuts i elimina els temps d'espera;
  • La pèrdua de paquets només afecta el lliurament del flux associat i no atura el lliurament de dades en fluxos transmesos en paral·lel a la connexió actual;
  • Eines de correcció d'errors que minimitzen els retards a causa de la retransmissió de paquets perduts. Ús de codis especials de correcció d'errors a nivell de paquet per reduir les situacions que requereixen la retransmissió de dades de paquet perduts.
  • Els límits dels blocs criptogràfics estan alineats amb els límits dels paquets QUIC, la qual cosa redueix l'impacte de la pèrdua de paquets en la descodificació del contingut dels paquets següents;
  • No hi ha problemes per bloquejar la cua TCP;
  • Suport d'identificació de connexió per reduir el temps de reconnexió dels clients mòbils;
  • Possibilitat de connectar mecanismes avançats de control de sobrecàrrega de connexió;
  • Ús de tècniques de predicció d'ample de banda en cada direcció per garantir la velocitat òptima d'enviament de paquets, evitant el rodatge a un estat de congestió, en què hi ha una pèrdua de paquets;
  • Augment significatiu del rendiment i el rendiment en comparació amb TCP. Per a serveis de vídeo com YouTube, s'ha demostrat que QUIC redueix un 30% les operacions de rebuffer quan es veuen vídeos.

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

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

Font: opennet.ru

Afegeix comentari