Origin
Verwendung
Browser hängen den Origin-Header an Cross-Origin-Anfragen sowie an Same-Origin-Anfragen an, die durch bestimmte Methoden oder APIs ausgelöst werden. Der Header gibt an, woher die Anfrage stammt, und liefert dem Server die Informationen, die zur Durchsetzung von Zugriffsrichtlinien nötig sind.
Der Header tritt in allen CORS-Anfragen (einschließlich Preflights), in Formularübermittlungen per POST sowie in Anfragen auf, die von der Fetch API oder von XMLHttpRequest ausgelöst werden. Bei Same-Origin-GET- oder -HEAD-Navigationsanfragen fügt der Browser den Header nicht hinzu.
Anders als der Referer-Header enthält Origin niemals den Pfad oder den Query-String, wodurch der Wert die Privatsphäre besser schützt. Der Sec-Fetch-Site-Header liefert ein ergänzendes Signal, indem er die Anfrage als same-origin, same-site, cross-site oder none einstuft.
scheme://host:port
Der vollständige Origin, bestehend aus Protokoll, Hostname und Port. Der Port entfällt, wenn das Protokoll einen Standardport verwendet (80 für HTTP, 443 für HTTPS).
Origin: https://example.com
Origin: https://api.example.re:8443
null
Wird gesendet, wenn der Origin datenschutzsensibel oder undurchsichtig (opaque) ist. Sandboxed iframes, data:-URLs und Weiterleitungen über Origin-Grenzen hinweg erzeugen einen null-Wert.
Origin: null
Hinweis
Server, die sich für die Zugriffskontrolle auf null verlassen, schaffen eine Sicherheitslücke. Mehrere voneinander unabhängige Kontexte teilen sich denselben null-Origin, sodass Vertrauen in diesen Wert ihnen allen Zugriff gewährt.
Beispiel
Ein Cross-Origin-POST aus einer Frontend-Anwendung enthält den Origin-Header, damit der Server den Aufrufer prüft, bevor er eine CORS-fähige Antwort zurückgibt.
Anfrage
POST /api/orders HTTP/1.1
Host: api.example.re
Origin: https://shop.example.re
Content-Type: application/json
Antwort
HTTP/1.1 201 Created
Access-Control-Allow-Origin: https://shop.example.re
Vary: Origin
Eine Preflight-OPTIONS-Anfrage überträgt den Origin zusammen mit der beabsichtigten Methode und den beabsichtigten Headern.
Anfrage
OPTIONS /api/orders HTTP/1.1
Host: api.example.re
Origin: https://shop.example.re
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type