Zum Hauptinhalt springen

2. The ORIGIN HTTP/3 Frame (Der ORIGIN HTTP/3-Frame)

2. The ORIGIN HTTP/3 Frame (Der ORIGIN HTTP/3-Frame)

Der ORIGIN HTTP/3-Frame ermöglicht es einem Server anzugeben, welchen Origin oder welche Origins [RFC6454] der Client als ein oder mehrere Mitglieder des Origin Set (Origin-Sets) (Abschnitt 2.3 von [ORIGIN]) für die Verbindung betrachten soll, in der er auftritt.

Die Semantik der Frame-Nutzlast ist identisch mit der des in [ORIGIN] definierten HTTP/2-Frames. Wo HTTP/2 Stream 0 für Frames reserviert, die sich auf den Status der Verbindung beziehen, definiert HTTP/3 zu diesem Zweck ein Paar unidirektionaler Streams, die als "control streams" (Kontroll-Streams) bezeichnet werden.

Wo [ORIGIN] angibt, dass der ORIGIN-Frame auf Stream 0 gesendet wird, sollte dies so interpretiert werden, dass der HTTP/3-Kontroll-Stream gemeint ist: Das heißt, der ORIGIN-Frame wird von Servern an Clients auf dem Kontroll-Stream des Servers gesendet.

HTTP/3 definiert kein Flags-Feld im generischen Frame-Layout. Da für den ORIGIN-Frame keine Flags definiert wurden, definiert diese Spezifikation keinen Mechanismus zur Übermittlung solcher Flags in HTTP/3.

2.1 Frame Layout (Frame-Layout)

Der ORIGIN-Frame hat ein Layout, das nahezu identisch mit dem in HTTP/2 verwendeten Layout ist; die Informationen werden hier der Klarheit halber wiederholt. Der ORIGIN-Frame-Typ ist 0x0c (dezimal 12), wie in HTTP/2. Die Nutzlast enthält null oder mehr Instanzen des Origin-Entry-Feldes.

HTTP/3 Origin-Entry {
Origin-Len (16),
ASCII-Origin (..),
}

HTTP/3 ORIGIN Frame {
Type (i) = 0x0c,
Length (i),
Origin-Entry (..) ...,
}

Figure 1: ORIGIN Frame Layout

Ein Origin-Entry ist eine längenbegrenzte Zeichenfolge. Konkret enthält er zwei Felder:

Origin-Len: Eine vorzeichenlose 16-Bit-Ganzzahl, die die Länge des ASCII-Origin-Feldes in Oktetten angibt.

ASCII-Origin: Eine OPTIONALE Zeichenfolge, die die ASCII-Serialisierung eines Origins ([RFC6454], Abschnitt 6.2) enthält, für den der Absender behauptet, dass diese Verbindung autoritativ ist oder sein könnte.