HTTP/3

verze protokolu HTTP From Wikipedia, the free encyclopedia

Remove ads

HTTP/3 je třetí „velká“ verze protokolu HTTP používaného službou World Wide Web pro přenos dat, doplňující rozšířené protokoly HTTP/1.1 a HTTP/2. Zatímco předchozí verze používaly transportní protokol TCP publikovaný v roce 1974,[1] HTTP/3 používá protokol QUIC oficiálně představený v roce 2021,[2] multiplexovaný transportní protokol využívající UDP.[3]

HTTP/3 používá podobnou sémantiku jako dřívější revize protokolu, včetně stejných metod, stavových kódů a polí zprávy, ale jejich kódování a udržování stavu relace je odlišné. Díky použití protokolu QUIC by HTTP/3 mělo mít nižší latence a při skutečném použití přenášet data rychleji než předchozí verze: v některých případech více než čtyřikrát rychleji než HTTP/1.1 (který je na mnoha webových serverech jedinou dostupnou verzí HTTP).[4][5]

V září 2024 bylo HTTP/3 podporováno více než 95 % hlavních používaných WWW prohlížečů[6] a 34% z nejpoužívanějších 10 milionů webových serverů.[7] HTTP/3 je od dubna 2020 podporované projektem Chromium (a odvozenými projekty včetně Google Chrome, Microsoft Edge, Samsung Internet a Opera)[8] a od května 2021 prohlížečem Mozilla Firefox.[6][9] Safari 14 HTTP/3 implementuje, ale implicitně je zakázané.[10]

Remove ads

Historie

ThumbTLS 1.2TLS 1.3
Srovnání protokolových zásobníků HTTP/1.1, HTTP/2 a HTTP/3

HTTP/3 vychází z internetového draftu přijatého pracovní skupinou QUIC. Původní návrh se jmenoval „HTTP/2 Semantics Using The QUIC Transport Protocol“,[11] a později byl přejmenován na „Hypertext Transfer Protocol (HTTP) over QUIC“.[12]

Předseda pracovních skupin HTTP a QUIC IETF Mark Nottingham vznesl 28. října 2018 v diskusi v elektronické konferenci oficiální žádost na přejmenování protokolu HTTP-over-QUIC na HTTP/3, aby byl „jasně identifikován jako další způsob navázání HTTP sémantiky na protokoly nižších vrstev ... aby lidé porozuměli jeho oddělení od QUIC“ a po dokončení a publikování pracovní verze přechod jeho vývoje z pracovní skupiny QUIC do pracovní skupiny HTTP[13]. V následující diskuzi, která trvala několik dní, byl Nottinghamův návrh přijat jeho kolegy v IETF, kteří v listopadu 2018 dali své oficiální schválení, aby se HTTP-over-QUIC stal HTTP/3.[14]

Do Google Chrome byla podpora HTTP/3 přidána v září 2019 (build Canary) a později byla doplněna i do stabilních buildů, ale byla zakázána konfigurační volbou. Implicitně byla povolena v dubnu 2020.[8] Firefox přidal podporu HTTP/3 v listopadu 2019 také zapínanou konfigurační volbou,[6][15][16] která byla implicitně povolena v dubnu 2021 ve Firefoxu 88.[6][9] Experimentální podpora HTTP/3 byla přidána do Safari Technology Preview 8. dubna 2020[17] a byla obsažena v Safari 14 dodávaným s IOS 14 a macOS 11,[10][18] ale i ve verzi Safari 16 pro macOS i iOS je stále implicitně zakázaná.[zdroj?]

6. června 2022 IETF publikoval HTTP/3 jako Navržený standard v IETF RFC9114.[19]

Remove ads

Porovnání s HTTP/1.1 a HTTP/2

Sémantika HTTP je ve všech verzích zachována: ve všech verzích jsou použitelné stejné metody, stavové kódy a pole zprávy. Jsou však rozdíly ve zobrazení této sémantiky do podkladové transportní vrstvy. HTTP/1.1 a HTTP/2 používají transportní protokol TCP, zatímco HTTP/3 používá QUIC, protokol transportní vrstvy, ve kterém je ochrana proti zahlcení implementována v uživatelském prostoru nad User Datagram Protocol (UDP). Přechod na QUIC se snaží odstranit velký problém HTTP/2 nazývaný „blokování čela fronty“: protože souběžné multiplexování v HTTP/2 není viditelné pro mechanismy zotavení ze ztráty dat protokolu TCP, takže ztracený nebo přehozený paket způsobí pozastavení všech aktivních transakcí bez ohledu na to, zda byla transakce ovlivněna ztraceným paketem. Protože QUIC poskytuje nativní multiplexování, ztracené pakety ovlivní pouze proudy, v nichž došlo ke ztrátě dat.

Navrhované DNS záznamy SVCB (vazba služby) a HTTPS má umožnit spojení bez předchozího přijetí hlavičky Alt-Svc s použitím předchozích verzí HTTP, což ušetří 1 kolo TCP handshakingu.[20][21] WWW klienti podporují HTTPS záznamy od verze Firefox 92, iOS 14, je oznámená podpora v Safari 14; Chromum je podporuje pokud jsou povoleny v konfiguraci.[22][23][24]

Remove ads

Implementace

Klienti

Další informace Prohlížeč, Implementováno (implicitně zakázano) ...

Knihovny

Knihovny s otevřeným zdrojovým textem implementující logiku QUIC a HTTP/3 klienta nebo serveru:[28]

Další informace Jméno, Klient ...

Servery

  • LiteSpeed Web Server (a OpenLiteSpeed) 6.0.2 vydaný 7. června 2021 se stal první verzí, která implicitně povoluje HTTP/3.[34]
  • Caddy web server v2.6.0 (vydaný 20. září 2022) má HTTP/3 povoleno implicitně.[35]
  • Nginx podporuje HTTP/3 od 1.25.0 (vydané 23. května 2023). Technologický preview nginx s podporou HTTP/3 byl vydán v červnu 2020.[36] Binární balíčky nginx s podporou HTTP/3 byly vydány v únoru 2023.[37]
  • Cloudflare distribuuje záplatu pro nginx, která integruje knihovnu HTTP/3.[38]
  • Microsoft IIS povolil podporu HTTP/3 nativně ve Windows Server 2022/Windows 11.[39]
  • HAProxy podporuje HTTP/3 nad QUIC od verze 2.6 vydané 31. května 2022.[40][41]
  • Nimble Streamer podporuje HTTP/3 pro protokoly vycházející z HTTP od verze 4.1.8-1.[42]
Remove ads

Odkazy

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads