Origin-Agent-Cluster

實驗性: 這是一個 實驗性技術
在生產環境中使用之前,請仔細檢視 瀏覽器相容性表格

Origin-Agent-Cluster HTTP 響應頭用於請求將關聯的 Document 放入源鍵控的 代理叢集 中。這意味著用於評估文件的作業系統資源(例如,作業系統程序)應僅與來自同一 的其他文件共享。

這樣做的效果是,資源密集型文件不太可能降低來自其他源的文件的效能。

現代 Web 瀏覽器具有多程序架構,其中來自不同源的頁面可以在不同的作業系統程序中執行。這對於效能非常重要,因為它意味著資源密集型頁面不會對使用者開啟的其他頁面產生太大影響。

但是,由於某些依賴於同源、跨源通訊的 DOM API,瀏覽器通常無法在不同的程序中執行同站跨源頁面。例如,預設情況下,來自以下兩個源的頁面將共享相同的作業系統資源

https://apples.example.org
https://oranges.example.org

透過設定 Origin-Agent-Cluster 標頭,頁面可以請求瀏覽器為該源分配專用的資源,這些資源不與任何其他源共享。

瀏覽器不需要遵守該請求。如果瀏覽器遵守了該請求,則 Window.originAgentCluster 屬性將返回 true,並且視窗將無法執行以下操作,這些操作都依賴於同源、跨源通訊

源鍵控代理叢集不應被視為安全功能:瀏覽器可能由於各種原因忽略該請求,或者選擇以不提供記憶體保護的方式實現它(例如,使用單獨的執行緒而不是單獨的程序)。相反,此功能是一個提示,表明如果為該源分配專用資源,則使用者體驗將得到改善。

例如,假設您的網站包含來自一個源的頁面,該頁面嵌入了一個同站、跨源 iframe,該 iframe 執行一個資源密集型遊戲。透過在 iframe 中的文件上設定 Origin-Agent-Cluster,您可以防止遊戲影響主頁面效能。

瀏覽器將確保來自給定源的所有頁面要麼是源鍵控的,要麼不是。這意味著

  • 如果來自某個源的第一個頁面未設定標頭,則來自該源的其他頁面將不會是源鍵控的,即使這些其他頁面設定了標頭也是如此。
  • 如果來自某個源的第一個頁面設定了標頭並被設為源鍵控,則來自該源的所有其他頁面都將是源鍵控的,無論它們是否請求。

為了避免這種不可預測的情況,您應該為來自給定源的所有頁面設定此標頭,或者都不設定。

標頭型別 響應標頭
禁止的標頭名稱

語法

http
Origin-Agent-Cluster: <boolean>

指令

<布林值>

?1 指示應將關聯的 Document 放入源鍵控代理叢集中。除了 ?1 之外的其他值將被忽略(例如,用於 false 的 ?0 結構化欄位)。

示例

http
Origin-Agent-Cluster: ?1

規範

規範
HTML 標準
# origin-agent-cluster

瀏覽器相容性

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

另請參閱