HTTP/3 - HTTP/3
| Internationaler Standard | Hypertext Transfer Protocol Version 3 (HTTP/3) (Entwurf) |
|---|---|
| Entwickelt von | IETF |
| Eingeführt | Internet Draft ab Juli 2021 |
| Webseite | https://quicwg.org/base-drafts/draft-ietf-quic-http.html |
HTTP/3 ist neben HTTP/1.1 und HTTP/2 die dritte und kommende Hauptversion des Hypertext Transfer Protocol, das zum Austausch von Informationen im World Wide Web verwendet wird .
Die HTTP-Semantik ist über alle Versionen hinweg konsistent: Die gleichen Anforderungsmethoden , Statuscodes und Nachrichtenfelder gelten normalerweise für alle Versionen. Die Unterschiede liegen in der Abbildung dieser Semantik auf zugrunde liegende Transporte. Sowohl HTTP/1.1 als auch HTTP/2 verwenden TCP als ihren Transport. HTTP / 3 verwendet QUIC , ein Transportschicht - Netzwerkprotokoll , das verwendet Benutzerraum Überlastungssteuerung über das User Datagram Protocol (UDP). Der Wechsel zu QUIC zielt darauf ab, ein Hauptproblem von HTTP/2 zu beheben, das als " Head-of-Line-Blocking " bezeichnet wird: Da die Parallelität des Multiplexing von HTTP/2 für die Verlustwiederherstellungsmechanismen von TCP nicht sichtbar ist , verursacht ein verlorenes oder neu geordnetes Paket alle aktiven Transaktionen, um einen Stillstand zu erfahren, unabhängig davon, ob diese Transaktion durch das verlorene Paket beeinträchtigt wurde. Da QUIC natives Multiplexing bietet, wirken sich verlorene Pakete nur auf die Streams aus, bei denen Daten verloren gegangen sind.
Mit Stand Oktober 2021 ist das HTTP/3-Protokoll noch offiziell ein Internet Draft , wird aber bereits von 73 % der laufenden Webbrowser und laut W3Techs von 22 % der Top-10-Millionen-Websites unterstützt. Es wird seit April 2020 von Google Chrome (einschließlich Chrome für Android und darauf basierendem Microsoft Edge ) und seit Mai 2021 von Mozilla Firefox unterstützt . Safari 14 (auf macOS Big Sur und iOS 14 ) hat das Protokoll ebenfalls implementiert aber die Unterstützung ist hinter einem Feature-Flag versteckt .
Geschichte
HTTP/3 ist ein Internet-Entwurf, der von der QUIC-Arbeitsgruppe angenommen wurde. Der ursprüngliche Vorschlag wurde "HTTP/2 Semantics Using The QUIC Transport Protocol" genannt und später "Hypertext Transfer Protocol (HTTP) over QUIC" genannt.
Am 28. Oktober 2018 schlug Mark Nottingham, Vorsitzender der IETF- HTTP- und QUIC-Arbeitsgruppen, in einer Mailinglisten-Diskussion vor, HTTP-over-QUIC in HTTP/3 umzubenennen, um es „eindeutig als eine weitere Bindung der HTTP-Semantik an das Wire-Protokoll zu identifizieren“. ... damit die Leute die Trennung von QUIC verstehen". Nottinghams Vorschlag wurde wenige Tage später von anderen IETF-Mitgliedern angenommen. Die HTTP-Arbeitsgruppe soll die QUIC-Arbeitsgruppe beim Design von HTTP/3 unterstützen und nach der Veröffentlichung die Verantwortung für die Wartung übernehmen.
Unterstützung für HTTP/3 wurde Chrome (Canary Build) im September 2019 hinzugefügt und erreichte dann schließlich stabile Builds, wurde jedoch durch ein Feature-Flag deaktiviert. Es wurde im April 2020 standardmäßig aktiviert. Firefox hat im November 2019 die Unterstützung für HTTP/3 über ein Feature-Flag hinzugefügt und im April 2021 damit begonnen, es standardmäßig in Firefox 88 zu aktivieren. Experimentelle Unterstützung für HTTP/3 wurde im April zu Safari Technology Preview hinzugefügt 8, 2020 und war in Safari 14 enthalten, das mit iOS 14 und macOS 11 ausgeliefert wird , aber standardmäßig immer noch deaktiviert ist.
Implementierungen
Klient
Browser
| Browser | Version implementiert (standardmäßig deaktiviert) | Ausgelieferte Version (standardmäßig aktiviert) | ||
|---|---|---|---|---|
| Chrom | Stabiler Aufbau (79) | Dezember 2019 | 87 | April 2020 |
| Feuerfuchs | Stabiler Aufbau (72.0.1) | Januar 2020 | 88 | April 2021 |
| Safari | Safari-Technologievorschau 104 | April 2020 | ||
| Kante | 87 | April 2020 | ||
Bibliotheken
Open-Source- Bibliotheken , die Client- oder Serverlogik für QUIC und HTTP/3 implementieren, umfassen
Server
- LiteSpeed Webserver (und OpenLiteSpeed) unterstützt HTTP/3 Draft 32.
- Der Caddy -Webserver bietet ab 2.0 Beta 17 experimentelle Unterstützung für HTTP/3.
- An der Nginx- Unterstützung für HTTP/3 wird gearbeitet. Eine Technologievorschau von nginx mit HTTP/3-Unterstützung wurde im Juni 2020 veröffentlicht.
- Cloudflare verteilt einen Patch für nginx, der die Quiche-HTTP/3-Bibliothek darin integriert.
Es gibt eine Reihe von Bibliotheken, die einen älteren Entwurf des Protokolls oder Googles Versionen von QUIC implementieren (zB Q046 in Chrome 76 verwendet).