Пратакол HTTP/3.0 атрымаў статут прапанаванага стандарту

Камітэт IETF (Internet Engineering Task Force), які займаецца развіццём пратаколаў і архітэктуры інтэрнэту, завяршыў фармаванне RFC для пратаколу HTTP/3.0 і апублікаваў злучаныя з ім спецыфікацыі пад ідэнтыфікатарамі RFC 9114 (пратакол) і RFC 9204 (тэхналогія сціск загалоўкаў QPACK) . Спецыфікацыя HTTP/3 атрымала статус "Прапанаванага стандарту", пасля чаго пачнецца праца па наданні RFC статусу чарнавога стандарту (Draft Standard), фактычна азначае поўную стабілізацыю пратакола і ўлік усіх выказаных заўваг. Адначасова апублікаваны абноўленыя варыянты спецыфікацый для пратаколаў HTTP/3.0 (RFC 1.1) і HTTP/9112 (RFC 2.0), а таксама дакументы, якія вызначаюць семантыку HTTP-запытаў (RFC 9113) і HTTP-загалоўкі кіравання кэшаваннем9110 (RFC.

Пратакол 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, Round Trip Time);
    Пратакол 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

Дадаць каментар