來源

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.club.tw
http
Origin: https://mdn.club.tw:80

規範

規範
Web 來源概念
# 第 7 節
獲取標準
# origin-header

瀏覽器相容性

BCD 表格僅在瀏覽器中載入

另請參閱