来源

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 请求头添加到

上述规则有一些例外;例如,如果跨源GETHEAD 请求是在no-cors 模式下进行的,则不会添加Origin 头部。

Origin 头部值在许多情况下可能为null,包括(但不限于)

  • 方案不是httphttpsftpwswssgopher(包括blobfiledata)的来源。
  • 跨源图像和媒体数据,包括<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 表格仅在浏览器中加载

另请参阅