來源
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.club.tw
http
Origin: https://mdn.club.tw:80
規範
| 規範 |
|---|
| Web 來源概念 # 第 7 節 |
| 獲取標準 # origin-header |
瀏覽器相容性
BCD 表格僅在瀏覽器中載入
另請參閱
HostReferer- 同源策略
- 瀏覽器什麼時候傳送 Origin 頭部?瀏覽器什麼時候將來源設定為 null?(Stack Overflow)