files/en-us/web/http/reference/headers/device-memory/index.md
{{Deprecated_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.
Device-Memory: <number>
<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 2 or above 32 then the value is one of: 2, 4, 8, 16, 32.
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}}
{{Compat}}