Origin Header
HTTP Origin 請求頭指示了導致該請求的源(方案、主機名和埠)。例如,如果使用者代理需要請求頁面中包含的資源,或由其執行的指令碼獲取的資源,則頁面的源可能會包含在請求中。
語法
http
Origin: null
Origin: <scheme>://<hostname>
Origin: <scheme>://<hostname>:<port>
指令
描述
Origin 頭與 Referer 頭類似,但它不公開路徑,並且可能為 null。它用於為源請求提供安全上下文,除非源資訊敏感或不必要。
一般來說,使用者代理會向以下請求新增 Origin 請求頭:
上述規則有一些例外;例如,如果在no-cors 模式下發出跨域 GET 或 HEAD 請求,則不會新增 Origin 頭。
在許多情況下,Origin 頭的值可能為 null,包括(但不限於):
- 方案不是
http、https、ftp、ws、wss或gopher之一的源(包括blob、file和data)。 - 跨域影像和媒體資料,包括
<img>、<video>和<audio>元素中的資料。 - 使用
createDocument()以程式設計方式建立的文件,從data:URL 生成的文件,或者沒有建立者瀏覽上下文的文件。 - 跨域重定向。
- 使用
Content-Security-Policy的sandbox指令(其值不包含allow-same-origin)提供的文件。 - 具有 sandbox 屬性(其值不包含
allow-same-origin)的 iframe。 - 網路錯誤的響應。
- 對於非
cors請求模式(例如,基本表單提交),Referrer-Policy設定為no-referrer。
注意: Stack Overflow 上有一個更詳細的列表,列出了可能返回 null 的情況:瀏覽器何時傳送 Origin 頭?瀏覽器何時將 Origin 設定為 null?
示例
http
Origin: https://mdn.club.tw
http
Origin: https://mdn.club.tw:80
規範
| 規範 |
|---|
| Web Origin 概念 # 第 7 節 |
| Fetch # Origin-Header |
瀏覽器相容性
載入中…
另見
HostReferer- 同源策略
- 瀏覽器何時傳送 Origin 頭?瀏覽器何時將 Origin 設定為 null? (Stack Overflow)