Origin header
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2020.
Der HTTP-Origin-Anforderungsheader gibt den Ursprung (Schema, Hostname und Port) an, der die Anforderung verursacht hat. Wenn ein Benutzeragent Ressourcen anfordern muss, die in eine Seite eingebunden sind oder von Skripten, die er ausführt, abgerufen werden, kann der Ursprung der Seite in die Anforderung aufgenommen werden.
| Header-Typ | Anforderungsheader |
|---|---|
| Verbotener Anforderungsheader | Ja |
Syntax
Origin: null
Origin: <scheme>://<hostname>
Origin: <scheme>://<hostname>:<port>
Direktiven
null-
Der Ursprung ist "datenschutzempfindlich" oder ist ein nicht transparenter Ursprung (spezifische Fälle sind im Abschnitt Beschreibung aufgeführt).
<scheme>-
Das verwendete Protokoll. In der Regel handelt es sich um das HTTP-Protokoll oder seine gesicherte Version HTTPS.
<hostname>-
Der Domainname oder die IP-Adresse des Ursprungsservers.
<port>Optional-
Portnummer, auf der der Server lauscht. Wenn kein Port angegeben ist, wird der Standardport für den angeforderten Dienst aus dem Schema impliziert (z.B.
80für eine HTTP-URL).
Beschreibung
Der Origin-Header ähnelt dem Referer-Header, gibt jedoch nicht den Pfad preis und kann null sein. Er wird verwendet, um den Sicherheitskontext für die Ursprungsanforderung bereitzustellen, außer in Fällen, in denen die Ursprungsinformation sensibel oder unnötig wäre.
Generell fügen Benutzeragenten den Origin-Anforderungsheader hinzu bei:
- Cross-Origin-Anforderungen.
- Same-Origin-Anforderungen, außer bei
GET- oderHEAD-Anforderungen (d.h. sie werden bei Same-Origin-POST,OPTIONS,PUT,PATCH- undDELETE-Anforderungen hinzugefügt).
Es gibt einige Ausnahmen von den obigen Regeln; beispielsweise wird der Origin-Header nicht hinzugefügt, wenn eine Cross-Origin-GET- oder HEAD-Anforderung im no-cors-Modus durchgeführt wird.
Der Origin-Header-Wert kann in mehreren Fällen null sein, einschließlich (nicht erschöpfend):
- Ursprünge, deren Schema nicht
http,https,ftp,ws,wssodergopherist (einschließlichblob,fileunddata). - Cross-Origin-Bilder und Mediendaten, einschließlich der in
<img>,<video>und<audio>-Elementen. - Dokumente, die programmgesteuert mit
createDocument()erstellt wurden, aus einerdata:-URL generiert oder die keinen erstellenden Browsing-Kontext haben. - Weiterleitungen über Ursprünge hinweg.
- Dokumente, die mit der
Content-Security-Policy-Richtliniesandboxbedient werden und deren Wertallow-same-originnicht enthält. - iframes mit einem Sandbox-Attribut, dessen Wert
allow-same-originnicht enthält. - Antworten, die Netzwerkfehler sind.
Referrer-Policy-Richtlinie aufno-referrergesetzt für nicht-cors-Anforderungsmodi (z.B. einfache Formularübertragungen).
Hinweis:
Eine detailliertere Auflistung von Fällen, in denen null zurückgegeben werden kann, finden Sie auf Stack Overflow: When do browsers send the Origin header? When do browsers set the origin to null?
Beispiele
Origin: https://developer.mozilla.org
Origin: https://developer.mozilla.org:80
Spezifikationen
| Specification |
|---|
| The Web Origin Concept> # section-7> |
| Fetch> # origin-header> |