Device-MemoryDevice-Memory is a Client Hint request header conveying the client device's approximate physical memory (RAM) in GiB. A high-entropy hint that helps servers serve lighter resources to low-end devices, it is sent only after an explicit Accept-CH opt-in.
The value is not exact RAM but is rounded/capped to predefined steps (0.25, 0.5, 1, 2, 4, 8 GiB) for privacy. For example, a 16GB device still reports 8, limiting the fingerprinting surface. Being high-entropy it is not sent by default; it attaches to subsequent requests only after the server opts in with Accept-CH: Device-Memory in a response.
In use, you might serve a lightweight experience — fewer heavy JS bundles, lower-resolution images, simpler animations — to low-memory devices (e.g. 0.5-1) and a richer experience to capable ones, an adaptive strategy. The same value is readable in JS via navigator.deviceMemory.
To deliver this hint to cross-origin subresources/iframes, add a Permissions-Policy delegation of the device-memory feature on top of the Accept-CH opt-in. If the response varies by the value, send Vary: Device-Memory to keep caches consistent.
Device-Memory: <0.25 | 0.5 | 1 | 2 | 4 | 8>e.g. Device-Memory: 8
<value> | Approximate device RAM in GiB, rounded/capped to one of 0.25, 0.5, 1, 2, 4, or 8 for privacy. |