Link 標頭

HTTP Link 標頭提供了一種在 HTTP 標頭中序列化一個或多個連結的方法。這允許伺服器將客戶端指向另一個包含有關所請求資源元資料的資源。此標頭與 HTML <link> 元素具有相同的語義。使用 Link 標頭的一個好處是,瀏覽器可以在 HTML 本身被獲取和處理之前開始預連線或預載入資源。

實際上,大多數rel 連結型別在與 HTTP 標頭一起使用時不起作用。例如,icon 關係僅在 HTML 中有效,而 stylesheet 在瀏覽器之間不可靠(僅在 Firefox 中)。唯一可靠的關係是 preconnectpreload,它們可以與 103 Early Hints 結合使用。

頭型別 響應標頭請求標頭
禁止請求頭
CORS-safelisted 響應頭

語法

http
Link: <uri-reference>; param1=value1; param2="value2"
<uri-reference>

URI 引用,必須用 <> 括起來並進行百分比編碼

引數

Link 標頭包含引數,這些引數用 ; 分隔,並且等同於 <link> 元素的屬性。值可以根據欄位值元件規則進行引用或不引用,因此 x=y 等同於 x="y"

示例

將 URL 括在尖括號中

URI(絕對或相對)必須用 <> 括起來

http
Link: <https://example.com>; rel="preconnect"
http
Link: https://bad.example; rel="preconnect"

編碼 URL

URI(絕對或相對)必須大於 255 的字元程式碼進行百分比編碼

http
Link: <https://example.com/%E8%8B%97%E6%9D%A1>; rel="preconnect"
http
Link: <https://example.com/苗條>; rel="preconnect"

您可以指定多個用逗號分隔的連結,例如

http
Link: <https://one.example.com>; rel="preconnect", <https://two.example.com>; rel="preconnect", <https://three.example.com>; rel="preconnect"

Link 標頭可以向客戶端提供分頁資訊,這通常用於以程式設計方式訪問資源

http
Link: <https://api.example.com/issues?page=2>; rel="prev", <https://api.example.com/issues?page=4>; rel="next", <https://api.example.com/issues?page=10>; rel="last", <https://api.example.com/issues?page=1>; rel="first"

在這種情況下,rel="prev"rel="next" 顯示上一頁和下一頁的連結關係,並且有 rel="last"rel="first" 引數提供搜尋結果的第一頁和最後一頁。

控制獲取優先順序

即使使用 preload 儘可能早地獲取資源,不同型別的內容也會根據瀏覽器的內部優先順序設定更早或更晚地獲取。fetchpriority 屬性可用於向瀏覽器提示特定資源對使用者體驗的影響與同類型其他資源相比更大或更小。

例如,以下標頭可用於以高於其他樣式表的優先順序預載入 style.css

http
Link: </style.css>; rel=preload; as=style; fetchpriority="high"

請注意,獲取資源的內部優先順序設定和 fetchpriority 指令的效果都取決於瀏覽器。fetchpriority 指令應謹慎使用,並且僅在瀏覽器無法推斷特定資源應以不同優先順序處理的情況下使用。

規範

規範
Web 連結
#

瀏覽器相容性

另見