Back to Content

Device-Memory header

files/en-us/web/http/reference/headers/device-memory/index.md

latest3.2 KB
Original Source

{{Deprecated_Header}}{{SecureContext_Header}}{{Non-standard_Header}}

[!WARNING] The Device-Memory header 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.

<table class="properties"> <tbody> <tr> <th scope="row">Header type</th> <td> {{Glossary("Request header")}}, <a href="/en-US/docs/Web/HTTP/Guides/Client_hints">Client hint</a> </td> </tr> <tr> <th scope="row">{{Glossary("Forbidden request header")}}</th> <td>No</td> </tr> </tbody> </table>

Syntax

http
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 2 or above 32 then 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:

http
Accept-CH: Device-Memory

Then on subsequent requests the client might send Device-Memory header back:

http
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")}}