7. The HTTP Origin Header Field (Champ d'en-tête HTTP Origin)
7. The HTTP Origin Header Field (Champ d'en-tête HTTP Origin)
Cette section définit le champ d'en-tête HTTP Origin.
7.1 Syntax (Syntaxe)
Le champ d'en-tête Origin a la syntaxe suivante:
origin = "Origin:" OWS origin-list-or-null OWS
origin-list-or-null = %x6E %x75 %x6C %x6C / origin-list
origin-list = serialized-origin *( SP serialized-origin )
serialized-origin = scheme "://" host [ ":" port ]
; <scheme>, <host>, <port> from RFC 3986
7.2 Semantics (Sémantique)
Lorsqu'il est inclus dans une requête HTTP, le champ d'en-tête Origin indique la ou les origines qui ont "causé" l'émission de la requête par l'agent utilisateur, tel que défini par l'API qui a déclenché l'émission de la requête par l'agent utilisateur.
Par exemple, considérez un agent utilisateur qui exécute des scripts au nom des origines. Si l'un de ces scripts amène l'agent utilisateur à émettre une requête HTTP, l'agent utilisateur PEUT utiliser le champ d'en-tête Origin pour informer le serveur du contexte de sécurité dans lequel le script s'exécutait lorsqu'il a amené l'agent utilisateur à émettre la requête.
Dans certains cas, un certain nombre d'origines contribuent à amener l'agent utilisateur à émettre une requête HTTP. Dans ces cas, l'agent utilisateur PEUT lister toutes les origines dans le champ d'en-tête Origin. Par exemple, si la requête HTTP a été initialement émise par une origine puis redirigée par une autre origine, l'agent utilisateur PEUT informer le serveur que deux origines ont été impliquées dans l'émission de la requête par l'agent utilisateur.
7.3 User Agent Requirements (Exigences de l'agent utilisateur)
L'agent utilisateur PEUT inclure un champ d'en-tête Origin dans toute requête HTTP.
L'agent utilisateur NE DOIT PAS inclure plus d'un champ d'en-tête Origin dans une requête HTTP.
Chaque fois qu'un agent utilisateur émet une requête HTTP depuis un contexte "sensible à la vie privée", l'agent utilisateur DOIT envoyer la valeur "null" dans le champ d'en-tête Origin.
NOTE: Ce document ne définit pas la notion de contexte sensible à la vie privée. Les applications qui génèrent des requêtes HTTP peuvent désigner des contextes comme sensibles à la vie privée pour imposer des restrictions sur la façon dont les agents utilisateurs génèrent les champs d'en-tête Origin.
Lors de la génération d'un champ d'en-tête Origin, l'agent utilisateur DOIT satisfaire les exigences suivantes:
-
Chacune des productions
serialized-origindans la grammaire DOIT être la sérialisation ASCII d'une origine. -
Aucune deux productions
serialized-originconsécutives dans la grammaire ne peuvent être identiques. En particulier, si l'agent utilisateur générerait deux origines sérialisées consécutives, l'agent utilisateur NE DOIT PAS générer la seconde.