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 امکان استفاده از TLS را از طریق UDP فراهم می کند).
  • کنترل یکپارچگی جریان، جلوگیری از از دست دادن بسته.
  • توانایی برقراری فوری اتصال (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

اضافه کردن نظر