来源
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 表格仅在浏览器中加载
另请参阅
Host
Referer
- 同源策略
- 浏览器什么时候发送 Origin 头部?浏览器什么时候将来源设置为 null?(Stack Overflow)