Sec-Purpose
Der Sec-Purpose
Fetch-Metadaten-Anforderungsheader gibt den Zweck an, für den die angeforderte Ressource verwendet wird, wenn dieser Zweck ein anderer ist als die unmittelbare Nutzung durch den User-Agent.
Der derzeit einzige definierte Zweck ist prefetch
, was darauf hinweist, dass die Ressource in Erwartung angefordert wird, dass sie von einer Seite benötigt wird, zu der wahrscheinlich in naher Zukunft navigiert wird, wie z.B. eine in den Suchergebnissen verlinkte Seite oder ein Link, über den der Benutzer mit der Maus gefahren ist.
Der Server kann diese Information nutzen, um: das Ablaufdatum des Caches für die Anfrage anzupassen, die Anfrage abzulehnen oder sie möglicherweise anders zu behandeln, wenn Seitenaufrufe gezählt werden.
Der Header wird gesendet, wenn eine Seite geladen wird, die ein <link>
-Element mit dem Attribut rel="prefetch"
enthält.
Beachten Sie, dass, wenn dieser Header gesetzt ist, ein Sec-Fetch-Dest
-Header in der Anfrage auf empty
gesetzt werden muss (jeder Wert im <link>
-Attribut as
wird ignoriert) und der Accept
-Header sollte mit dem Wert übereinstimmen, der für normale Navigationsanfragen verwendet wird.
Header-Typ | Fetch-Metadaten-Anforderungsheader |
---|---|
Verbotener Header-Name | ja (Präfix Sec- ) |
CORS-safelisted Anforderungsheader | nein |
Syntax
Sec-Purpose: prefetch
Direktiven
Die erlaubten Token sind:
prefetch
-
Der Zweck besteht darin, eine Ressource vorzuladen, die möglicherweise in einer wahrscheinlichen zukünftigen Navigation benötigt wird.
Beispiele
Eine Prefetch-Anfrage
Betrachten Sie den Fall, bei dem ein Browser eine Datei lädt, die ein <link>
-Element mit dem Attribut rel="prefetch"
und einem href
-Attribut enthält, das die Adresse einer Bilddatei enthält.
Das resultierende fetch()
sollte zu einer HTTP-Anfrage führen, bei der Sec-Purpose: prefetch
, Sec-Fetch-Dest: empty
und ein Accept
-Wert, der dem entspricht, den der Browser für die Seitennavigation verwendet, gesetzt sind.
Ein Beispiel für einen solchen Header (unter Firefox) finden Sie unten:
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
Hinweis: Zum Zeitpunkt der Erstellung dieses Dokuments setzt FireFox den Accept
-Header fälschlicherweise als Accept: */*
für Prefetches.
Das Beispiel wurde geändert, um zu zeigen, was der Accept
-Wert sein sollte.
Dieses Problem kann in Firefox Bug 1836334 nachverfolgt werden.
Spezifikationen
Specification |
---|
Fetch Standard # sec-purpose-header |
Prefetch # sec-purpose-header |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Prefetch (Glossar)
<link>
Element mit Attributrel="prefetch"