Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

En-tête Origin

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2020.

L'en-tête de requête HTTP Origin indique l'origine (schéma, nom d'hôte et port) à l'origine de la requête. Par exemple, si un agent utilisateur doit demander des ressources incluses dans une page, ou récupérées par des scripts qu'il exécute, alors l'origine de la page peut être incluse dans la requête.

Type d'en-tête En-tête de requête
En-tête de requête interdit Oui

Syntaxe

http
Origin: null
Origin: <scheme>://<hostname>
Origin: <scheme>://<hostname>:<port>

Directives

null

L'origine doit être protégée pour des raisons de confidentialité ou il s'agit d'une origine opaque (les cas correspondants sont décrits dans la section description ci-après).

<scheme>

Le protocole utilisé. Il s'agit généralement de HTTP ou de HTTPS.

<hostname>

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. Il est utilisé pour fournir le contexte de sécurité de la requête d'origine, sauf dans les cas où l'information de l'origine serait sensible ou superflue.

De façon générale, les agents utilisateurs ajoutent l'en-tête de requête Origin aux :

Il existe quelques exceptions à ces règles ; par exemple, si une requête GET ou HEAD d'origine croisée est effectuée en mode no-cors, l'en-tête Origin ne sera pas ajouté.

La valeur de l'en-tête Origin peut être null dans un certain nombre de cas, notamment (liste non exhaustive) :

  • Les origines dont le schéma n'est pas http, https, ftp, ws, wss ou gopher (y compris blob, file et data).
  • Les images et données multimédias d'origine croisée, y compris celles dans les éléments HTML <img>, <video> et <audio>.
  • Les documents créés par programme à l'aide de createDocument(), générés à partir d'une URL data:, ou qui n'ont pas de contexte de navigation créateur.
  • Les redirections entre origines.
  • Les documents servis avec la directive sandbox de Content-Security-Policy dont la valeur n'inclut pas allow-same-origin.
  • Les cadres intégrés avec un attribut sandbox dont la valeur n'inclut pas allow-same-origin.
  • Les réponses qui sont des erreurs réseau.
  • Referrer-Policy défini à no-referrer pour les modes de requête non-cors (par exemple, les envois de formulaires basiques).

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 d'origine ? Quand l'origine est-elle mise à nul ? (angl.)

Exemples

http
Origin: https://developer.mozilla.org
http
Origin: https://developer.mozilla.org:80

Spécifications

Specification
The Web Origin Concept
# section-7
Fetch
# origin-header

Compatibilité des navigateurs

Voir aussi