来源
Origin 请求头指示导致请求的来源(方案、主机名和端口)。例如,如果用户代理需要请求页面中包含的资源,或者由其执行的脚本获取的资源,则页面的来源可能包含在请求中。
语法
http
Origin: null
Origin: <scheme>://<hostname>
Origin: <scheme>://<hostname>:<port>
指令
null-
来源是“隐私敏感的”,或者如 HTML 规范所定义的不透明来源(具体情况在描述部分列出)。
<scheme>-
使用的协议。通常是 HTTP 协议或其安全版本 HTTPS。
<hostname>-
源服务器的域名或 IP 地址。
<port>可选-
服务器监听的端口号。如果没有给出端口号,则隐含请求服务的默认端口(例如,HTTP URL 的“80”)。
描述
Origin 头部类似于Referer 头部,但不公开路径,并且可能为null。它用于提供源请求的“安全上下文”,除了来源信息可能敏感或不必要的情况。
广义地说,用户代理会将Origin 请求头添加到
上述规则有一些例外;例如,如果跨源GET 或HEAD 请求是在no-cors 模式下进行的,则不会添加Origin 头部。
Origin 头部值在许多情况下可能为null,包括(但不限于)
- 方案不是
http、https、ftp、ws、wss或gopher(包括blob、file和data)的来源。 - 跨源图像和媒体数据,包括
<img>、<video>和<audio>元素中的数据。 - 使用
createDocument()以编程方式创建的文档,从data:URL 生成的文档,或者没有创建者浏览上下文的文档。 - 跨源重定向。
- 具有不包含
allow-same-origin值的沙盒属性的 iframe。 - 网络错误的响应。
Referrer-Policy设置为非cors请求模式的no-referrer(例如简单的表单提交)。
注意: Stack Overflow 上有一个更详细的案例列表,这些案例可能会返回null:浏览器什么时候发送 Origin 头部?浏览器什么时候将来源设置为 null?
示例
http
Origin: https://mdn.org.cn
http
Origin: https://mdn.org.cn:80
规范
| 规范 |
|---|
| Web 来源概念 # 第 7 节 |
| 获取标准 # origin-header |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
HostReferer- 同源策略
- 浏览器什么时候发送 Origin 头部?浏览器什么时候将来源设置为 null?(Stack Overflow)