Sec-Purpose

Sec-Purpose 獲取元資料請求頭 指示請求資源將用於何種目的,當該目的並非使用者代理立即使用時。

目前唯一定義的目的為 prefetch,表示正在請求資源以預期將來可能需要它,例如搜尋結果中連結的頁面或使用者懸停其上的連結。伺服器可以使用此資訊來:調整請求的快取過期時間、拒絕請求,或者在計算頁面訪問量時以不同方式處理它。

當載入具有 <link> 元素(該元素具有屬性 rel="prefetch")的頁面時,會發送此頭資訊。請注意,如果設定了此頭資訊,則請求中的 Sec-Fetch-Dest 頭資訊必須設定為 empty<link> 屬性 as 中的任何值都將被忽略),並且 Accept 頭資訊應與正常導航請求中使用的值匹配。

頭資訊型別 獲取元資料請求頭
禁止的頭資訊名稱 是(字首為 Sec-
CORS 安全列表請求頭

語法

http
Sec-Purpose: prefetch

指令

允許的令牌為

prefetch

目的是預取在未來可能的導航中可能需要的資源。

示例

預取請求

考慮瀏覽器載入一個檔案的情況,該檔案包含一個 <link> 元素,該元素具有屬性 rel="prefetch" 和一個包含影像檔案地址的 href 屬性。生成的 fetch() 應導致一個 HTTP 請求,其中 Sec-Purpose: prefetchSec-Fetch-Dest: empty,以及一個與瀏覽器用於頁面導航相同的 Accept 值。

下面給出了此類頭資訊(在 Firefox 中)的一個示例

http
GET /images/some_image.png HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Sec-Purpose: prefetch
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
Pragma: no-cache
Cache-Control: no-cache

注意:在撰寫本文時,FireFox 錯誤地將預取的 Accept 頭資訊設定為 Accept: */*。此示例已修改為顯示 Accept 值應為何值。此問題可以在 Firefox 錯誤 1836334 中跟蹤。

規範

規範
獲取標準
# sec-purpose-header
預取
# sec-purpose-header

瀏覽器相容性

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

另請參閱