Device-Memory header
{{SecureContext_Header}}{{Non-standard_Header}}
[!WARNING] The
Device-Memoryheader was standardized as {{HTTPHeader("Sec-CH-Device-Memory")}} and the new name is now preferred.
The HTTP Device-Memory {{Glossary("request header")}} is used in device client hints to indicate the approximate amount of available RAM on the client device, in gigabytes.
The header is part of the {{DOMxRef("Device Memory API", "Device Memory API", "", "nocode")}}.
Client hints are accessible only on secure origins.
A server has to opt in to receive the Device-Memory header from the client, by first sending the {{HTTPHeader("Accept-CH")}} response header.
Servers that opt in to the Device-Memory client hint will typically also specify it in the {{HTTPHeader("Vary")}} header to inform caches that the server may send different responses based on the header value in a request.
| Header type | {{Glossary("Request header")}}, Client hint |
|---|---|
| {{Glossary("Forbidden request header")}} | No |
Syntax
Device-Memory: <number>
Directives
<number>-
: The approximate amount of device RAM.
The amount of device RAM can be used as a {{glossary("fingerprinting")}} variable, so values for the header are intentionally coarse to reduce the potential for its misuse. Values are only reported in powers of two, and are clamped to an implementation-defined minimum lower value and a maximum upper value. These bounds may change over time (see browser compatibility table).
For example, if a browser does not report below
2or above32then the value is one of:2,4,8,16,32.
-
Examples
The server first needs to opt in to receive Device-Memory header by sending the {{HTTPHeader("Accept-CH")}} response header containing Device-Memory:
Accept-CH: Device-Memory
Then on subsequent requests the client might send Device-Memory header back:
Device-Memory: 1
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- Improving user privacy and developer experience with User-Agent Client Hints (developer.chrome.com)
- {{DOMxRef("Device Memory API", "Device Memory API", "", "nocode")}}
- {{DOMxRef("Navigator.deviceMemory")}}
- {{DOMxRef("WorkerNavigator.deviceMemory")}}
- Device and responsive image client hints
- {{HTTPHeader("Sec-CH-Device-Memory")}}
- {{HTTPHeader("Sec-CH-DPR")}}
- {{HTTPHeader("Sec-CH-Viewport-Height")}}
- {{HTTPHeader("Sec-CH-Viewport-Width")}}
- {{HTTPHeader("Sec-CH-Width")}}
- {{HTTPHeader("DPR")}} {{deprecated_inline}}
- {{HTTPHeader("Content-DPR")}} {{deprecated_inline}}
- {{HTTPHeader("Viewport-Width")}} {{deprecated_inline}}
- {{HTTPHeader("Width")}} {{deprecated_inline}}
- {{HTTPHeader("Accept-CH")}}
- HTTP Caching: Vary and {{HTTPHeader("Vary")}}
谢谢你的反馈!