Sec-Purpose: prefetch
Directives
The allowed tokens are:
prefetch
-
The purpose is to prefetch a resource that may be needed in a probable future navigation.
Examples
A prefetch request
Consider the case where a browser loads a file with a <link>
element that has the attribute rel="prefetch"
and an href
attribute containing the address of an image file.
The resulting fetch()
should result in an HTTP request where Sec-Purpose: prefetch
, Sec-Fetch-Dest: empty
, and an Accept
value that is the same as the browser uses for page navigation.
An example of such a header (on Firefox) is given below:
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
Note:
At time of writing Firefox incorrectly sets the Accept
header as Accept: */*
for prefetches.
The example has been modified to show what the Accept
value should be.
This issue can be tracked in Firefox bug 1836334.
Specifications
Specification |
---|
Prefetch # sec-purpose-header |
Browser compatibility
BCD tables only load in the browser
See also
Sec-Fetch-User
fetch metadata request headers- Prefetch (Glossary)
rel="prefetch"