Path: blob/main/files/en-us/web/http/headers/dpr/index.md
6532 views
------{{HTTPSidebar}}{{Deprecated_Header}}{{SecureContext_Header}}{{Non-standard_Header}}
The DPR device client hint request header provides the client device pixel ratio. This ratio is the number of physical device pixels corresponding to every {{Glossary("CSS pixel")}}.
| Header type | {{Glossary("Request header")}}, Client hint |
|---|---|
| {{Glossary("Forbidden header name")}} | no |
The hint is useful when selecting image sources that best correspond to a screen's pixel density. This is similar to the role played by x descriptors in the <img> srcset attribute to allow user agents to select a preferred image.
If a server uses the DPR hint to choose which resource is sent in a response, the response must include the {{HTTPHeader("Content-DPR")}} header. The client must use the value in Content-DPR for layout if it differs from the value in the request's DPR header.
If the DPR header appears more than once in a message the last occurrence is used.
Note:
Client Hints are accessible only on secure origins (via TLS).
A server has to opt in to receive the
DPRheader from the client, by sending the {{HTTPHeader("Accept-CH")}} response header.Servers that opt in to the
DPRclient hint will typically also specify it in the {{HTTPHeader("Vary")}} header. This informs caches that the server may send different responses based on the header value in a request.
DPRwas removed from the client hints specification in draft-ietf-httpbis-client-hints-07. The proposed replacement isSec-CH-DPR(Responsive Image Client Hints).
Syntax
Directives
<number>: The client device pixel ratio.
Examples
A server must first opt in to receive the DPR header by sending the response header {{HTTPHeader("Accept-CH")}} containing the directive DPR.
Then on subsequent requests the client might send DPR header to the server:
If a request with the DPR header (as shown above) is for an image resource, then the server response must include the {{HTTPHeader("Content-DPR")}} header:
Browser compatibility
{{Compat}}
See also
Improving user privacy and developer experience with User-Agent Client Hints (web.dev)
Device client hints
{{HTTPHeader("Content-DPR")}}
{{HTTPHeader("Device-Memory")}}
{{HTTPHeader("Viewport-Width")}}
{{HTTPHeader("Width")}}
{{HTTPHeader("Accept-CH")}}
HTTP Caching > Varying responses and {{HTTPHeader("Vary")}}