The Origin header is similar to the Referer header, but does not disclose the path, and may be null. It is used to provide the "security context" for the origin request, except in cases where the origin information would be sensitive or unnecessary.
Broadly speaking, user agents add the Origin request header to:
There are some exceptions to the above rules; for example, if a cross-origin GET or HEAD request is made in no-cors mode, the Origin header will not be added.
The Origin header value may be null in a number of cases, including (non-exhaustively):
- Origins whose scheme is not one of
http, https, ftp, ws, wss, or gopher (including blob, file and data). - Cross-origin images and media data, including that in
<img>, <video> and <audio> elements. - Documents created programmatically using
createDocument(), generated from a data: URL, or that do not have a creator browsing context. - Redirects across origins.
- iframes with a sandbox attribute that doesn't contain the value
allow-same-origin. - Responses that are network errors.