Origin
L'en-tête de requête Origin
indique l'origine (c'est-à-dire le schéma, le nom d'hôte et le port) qui a déclenché la requête.
Ainsi, si un agent utilisateur doit demander les ressources incluses dans une page ou récupérer les scripts exécutés sur cette page, l'origine de la page courante peut alors être incluse dans la requête.
Type d'en-tête | En-tête de requête |
---|---|
Nom d'en-tête interdit | Oui |
Syntaxe
Origin: null
Origin: <schema>://<nomhote>
Origin: <schema>://<nomhote>:<port>
Directives
null
-
L'origine doit être protégée pour des raisons de confidentialité ou il s'agit d'une origine opaque, telle que définie par la spécification HTML (les cas correspondants sont décrits dans la section description ci-après).
<schema>
-
Le protocole utilisé. Il s'agit généralement de HTTP ou de HTTPS.
<nomhote>
-
Le nom de domaine ou l'adresse IP du serveur d'origine.
<port>
Facultatif-
Le numéro de port sur lequel écoute le serveur. Si aucun port n'est donné, c'est le port par défaut pour le protocole correspondant qui est utilisé (par exemple
443
pour une URL qui utiliserait le protocole HTTPS).
Description
L'en-tête Origin
est semblable à l'en-tête Referer
, mais ne contient pas le chemin de la ressource et peut valoir null
. On l'utilise pour fournir le « contexte de sécurité » de la requête d'origine, sauf dans les cas où l'information de l'origine est superflue ou sensible pour des questions de vie privée.
Au sens large, les agents utilisateurs envoient l'en-tête Origin
avec les requêtes :
- D'origines multiples (cross origin en anglais).
- De même origine, sauf pour les requêtes utilisant les méthodes
GET
ouHEAD
(autrement dit, cet en-tête est utilisé pour les requêtes avec la méthodePOST
,OPTIONS
,PUT
,PATCH
, etDELETE
).
Il existe certaines exceptions aux règles précédentes. Par exemple, lorsqu'une requête GET
ou HEAD
est effectuée en mode no-cors
, l'en-tête Origin
ne sera pas ajouté.
L'en-tête Origin
peut valoir null
dans certains cas (la liste qui suit n'est pas exhaustive) :
- Le schéma de l'origine n'est pas
http
,https
,ftp
,ws
,wss
, ougopher
(y comprisblob
,file
etdata
). - La requête porte sur des médias d'origines multiples, par exemple via les éléments
<img>
,<video>
et<audio>
. - Pour les documents créés via un programme à l'aide de
createDocument()
, ou générés à partir d'une URLdata:
, ou qui n'ont pas de contexte de navigation créateur. - Pour les redirections entre les origines.
- Pour les éléments
<iframe>
dont l'attributsandox
ne contient pas la valeurallow-same-origin
. - Pour les réponses qui sont des erreurs réseau.
Note :
Une liste plus détaillée de ces cas avec null
est présentée sur Stack Overflow : Quand les navigateurs envoient-ils l'en-tête Origin
? Quand l'origine est-elle mise à null
? (en anglais)
Exemples
Origin: https://developer.mozilla.org
Origin: https://developer.mozilla.org:80
Spécifications
Specification |
---|
The Web Origin Concept # section-7 |
Fetch Standard # origin-header |
Compatibilité des navigateurs
BCD tables only load in the browser