此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
Origin
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年7月.
请求标头Origin
表示了请求的来源(协议、主机、端口)。例如,如果一个用户代理需要请求一个页面中包含的资源,或者执行脚本中的 HTTP 请求(fetch),那么该页面的来源(origin)就可能被包含在这次请求中。
Header type | Request header |
---|---|
Forbidden header name | yes |
In this article
语法
Origin: nullOrigin: <scheme>://<hostname>Origin: <scheme>://<hostname>:<port>
指令
null
请求的来源是“隐私敏感”的,或者是 HTML 规范定义的不透明来源(具体情况在描述部分列出)。
<scheme>
请求所使用的协议,通常是 HTTP 协议或者它的安全版本(HTTPS 协议)。
<hostname>
源站的域名或 IP 地址。
<port>
可选服务器正在监听的端口号。缺省为服务的默认端口(对于 HTTP 请求而言,默认端口为 80)。
描述
Origin
标头与Referer
标头类似,但前者不会暴露 URL 的 path 部分,而且其可以为null
值。其用于为源站的请求提供“安全上下文”,除非源站的信息敏感或不必要的。
从广义上讲,用户代理会在以下情况中添加Origin
请求标头:
除上述规则外,还有一些特殊情况。例如,在no-cors 模式下的跨源GET
或HEAD
请求不会发送Origin
标头。
Origin
标头在以下情况中(不完整)会被设置为null
:
- 请求来源的协议不是
http
、https
、ftp
、ws
、wss
或gopher
中的任意一个(如:blob
、file
和data
)。 - 跨源的图像或媒体,包括:
<img>
、<video>
和<audio>
元素。 - 属于以下几种文档类型的:使用
createDocument()
创建的、通过data:
URL 生成的或没有创建者的浏览上下文的。 - 跨源重定向。
- 没有为 sandbox 属性设置
allow-same-origin
值的 iframe。 - 响应(response)是网络错误。
备注:了解更详细的关于其值何时为null
的清单,请参见 Stack Overflow:When do browsers send the Origin header? When do browsers set the origin to null?。
示例
Origin: https://developer.mozilla.org
Origin: https://developer.mozilla.org:80
规范
Specification |
---|
The Web Origin Concept> # section-7> |
Fetch> # origin-header> |
浏览器兼容性
Loading…
参见
Host
Referer
- 同源策略
- 浏览器在何时会发送 Origin 请求标头?又会在何时将其设置为 null?(Stack Overflow)