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 July 2020.
Der HTTP-Origin
-Anforderungsheader gibt den Ursprung (Schema, Hostname und Port) an, der die Anforderung verursacht hat.
Zum Beispiel, wenn ein User-Agent Ressourcen anfordern muss, die in einer Seite enthalten sind, oder von Skripten abgerufen werden, die er ausführt, dann kann der Ursprung der Seite in der Anforderung enthalten sein.
Header-Typ | Anforderungsheader |
---|---|
Verbotener Anforderungsheader | Ja |
Syntax
Origin: null
Origin: <scheme>://<hostname>
Origin: <scheme>://<hostname>:<port>
Direktiven
null
-
Der Ursprung ist "datenschutzsensitiv" oder ist ein undurchsichtiger Ursprung, wie in der HTML-Spezifikation definiert (spezifische Fälle sind im Beschreibung-Abschnitt aufgeführt).
<scheme>
-
Das Protokoll, das verwendet wird. In der Regel handelt es sich um das HTTP-Protokoll oder dessen sichere Version, HTTPS.
<hostname>
-
Der Domainname oder die IP-Adresse des Ursprungsservers.
<port>
Optional-
Portnummer, auf der der Server hört. Wenn kein Port angegeben ist, wird der Standardport für den angeforderten Dienst aus dem Schema impliziert (z. B.
80
fü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 Ursprungsinformationen sensibel oder unnötig wären.
Im Allgemeinen fügen User-Agents den Origin
-Anforderungsheader hinzu für:
- Cross-Origin-Anforderungen.
- Same-Origin-Anforderungen, außer bei
GET
- oderHEAD
-Anforderungen (d.h. sie werden zu Same-Origin-POST
,OPTIONS
,PUT
,PATCH
undDELETE
-Anforderungen hinzugefügt).
Es gibt einige Ausnahmen zu den obigen Regeln; zum Beispiel, wenn eine Cross-Origin-GET
- oder HEAD
-Anforderung im no-cors Mode durchgeführt wird, wird der Origin
-Header nicht hinzugefügt.
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
,wss
odergopher
ist (einschließlichblob
,file
unddata
). - Cross-Origin-Bilder und Mediendaten, einschließlich solcher in
<img>
,<video>
und<audio>
-Elementen. - Dokumente, die programmgesteuert mit
createDocument()
erstellt wurden, aus einerdata:
-URL generiert wurden oder keinen Erstellungs-Browsing-Kontext haben. - Weiterleitungen über Ursprünge hinweg.
- Dokumente, die mit der
Content-Security-Policy
sandbox
-Direktive ausgeliefert werden, deren Wert nichtallow-same-origin
enthält. - iframes mit einem Sandbox-Attribut, dessen Wert nicht
allow-same-origin
enthält. - Antworten, die Netzfehler sind.
Referrer-Policy
aufno-referrer
gesetzt für nichtcors
-Anforderungsmodi (z. B. grundlegende Formularübertragungen).
Hinweis:
Es gibt eine detailliertere Auflistung von Fällen, die null
zurückgeben können, auf Stack Overflow: Wann senden Browser den Origin-Header? Wann setzen Browser den Ursprung auf null?
Beispiele
Origin: https://developer.mozilla.org
Origin: https://developer.mozilla.org:80
Spezifikationen
Specification |
---|
The Web Origin Concept # section-7 |
Fetch # origin-header |