1. Einführung (Introduction)
HTTP-Erweiterungen (wie in Abschnitt 16 von [HTTP] definiert) müssen manchmal auf zugrunde liegende Transportprotokollfunktionen wie unzuverlässige Zustellung (wie von [QUIC-DGRAM] angeboten) zugreifen, um wünschenswerte Funktionen zu ermöglichen. Dies könnte beispielsweise die Einführung einer unzuverlässigen Version der CONNECT-Methode und das Hinzufügen einer unzuverlässigen Zustellung zu WebSockets [WEBSOCKET] ermöglichen.
In Abschnitt 2 beschreibt dieses Dokument HTTP-Datagramme (HTTP Datagrams), eine Konvention für die Übertragung bidirektionaler und potenziell unzuverlässiger Datagramme innerhalb einer HTTP-Verbindung mit Multiplexing, wenn möglich. Während HTTP-Datagramme mit HTTP-Anfragen verknüpft sind, sind sie kein Teil des Nachrichteninhalts. Stattdessen sind sie für die Verwendung durch HTTP-Erweiterungen (wie die CONNECT-Methode) vorgesehen und mit allen Versionen von HTTP kompatibel.
Wenn HTTP über ein Transportprotokoll läuft, das unzuverlässige Zustellung unterstützt (z. B. wenn die QUIC DATAGRAM-Erweiterung [QUIC-DGRAM] für HTTP/3 [HTTP/3] verfügbar ist), können HTTP-Datagramme diese Fähigkeit nutzen.
In Abschnitt 3 beschreibt dieses Dokument das HTTP-Kapselprotokoll (HTTP Capsule Protocol), das die Übertragung von HTTP-Datagrammen unter Verwendung zuverlässiger Zustellung ermöglicht. Dies adressiert HTTP/3-Fälle, in denen die Verwendung des QUIC DATAGRAM-Frames nicht verfügbar oder unerwünscht ist, oder in denen das Transportprotokoll nur zuverlässige Zustellung bietet, wie bei HTTP/1.1 [HTTP/1.1] oder HTTP/2 [HTTP/2] über TCP [TCP].
1.1. Konventionen und Definitionen (Conventions and Definitions)
Die Schlüsselwörter "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" und "OPTIONAL" in diesem Dokument sind wie in BCP 14 [RFC2119] [RFC8174] beschrieben zu interpretieren, wenn und nur wenn sie in Großbuchstaben erscheinen, wie hier gezeigt.
Dieses Dokument verwendet Terminologie aus [QUIC].
Wenn dieses Dokument Protokolltypen definiert, verwendet das Definitionsformat die Notation aus Abschnitt 1.3 von [QUIC]. Wenn Felder innerhalb von Typen Ganzzahlen sind, werden sie unter Verwendung der Kodierung für Ganzzahlen variabler Länge aus Abschnitt 16 von [QUIC] kodiert. Ganzzahlwerte müssen nicht mit der minimal notwendigen Anzahl von Bytes kodiert werden.
In diesem Dokument bezieht sich der Begriff "Intermediary" (Vermittler) auf einen HTTP-Vermittler, wie in Abschnitt 3.7 von [HTTP] definiert.