Aller au contenu principal

2. The ORIGIN HTTP/3 Frame (La trame ORIGIN HTTP/3)

2. The ORIGIN HTTP/3 Frame (La trame ORIGIN HTTP/3)

La trame ORIGIN HTTP/3 permet à un serveur d'indiquer quelle origine ou quelles origines [RFC6454] le serveur souhaite que le client considère comme un ou plusieurs membres de l'Origin Set (Ensemble d'origines) (Section 2.3 de [ORIGIN]) pour la connexion dans laquelle elle se produit.

La sémantique de la charge utile de la trame est identique à celle de la trame HTTP/2 définie dans [ORIGIN]. Là où HTTP/2 réserve le flux 0 pour les trames liées à l'état de la connexion, HTTP/3 définit une paire de flux unidirectionnels appelés "control streams" (flux de contrôle) à cette fin.

Là où [ORIGIN] indique que la trame ORIGIN est envoyée sur le flux 0, cela doit être interprété comme signifiant le flux de contrôle HTTP/3 : c'est-à-dire que la trame ORIGIN est envoyée des serveurs aux clients sur le flux de contrôle du serveur.

HTTP/3 ne définit pas de champ Flags (Drapeaux) dans la disposition générique de la trame. Comme aucun drapeau n'a été défini pour la trame ORIGIN, cette spécification ne définit pas de mécanisme pour communiquer de tels drapeaux dans HTTP/3.

2.1 Frame Layout (Disposition de la trame)

La trame ORIGIN a une disposition presque identique à celle utilisée dans HTTP/2 ; les informations sont rappelées ici pour plus de clarté. Le type de trame ORIGIN est 0x0c (décimal 12), comme dans HTTP/2. La charge utile contient zéro ou plusieurs instances du champ Origin-Entry.

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

Une Origin-Entry est une chaîne délimitée par sa longueur. Plus précisément, elle contient deux champs :

Origin-Len : Un entier non signé de 16 bits indiquant la longueur, en octets, du champ ASCII-Origin.

ASCII-Origin : Une séquence OPTIONNELLE de caractères contenant la sérialisation ASCII d'une origine ([RFC6454], Section 6.2) pour laquelle l'expéditeur affirme que cette connexion est ou pourrait être autoritaire.