{{HTTPSidebar}}
The Accept
request HTTP header advertizes which content types, expressed as MIME types, the client is able to understand. Using content negotiation, the server then selects one of the proposal, use it and inform the client of its choice with the {{HTTPHeader("Content-Type")}} response header. Browsers set adequate values for this header depending of the context where the request is done: when fetching a CSS stylesheet they set a different value for this request than when they fetch an image, a video or a script.
Header type | {{Glossary("Request header")}} |
---|---|
{{Glossary("Forbidden header name")}} | no |
Syntax
Accept: <MIME_type>/<MIME_subtype> Accept: <MIME_type>/* Accept: */* // Multiple types, weighted with the q-factor syntax: Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8
Directives
<MIME_type>/<MIME_subtype>
- A single, precise MIME type, like
text/html
. <MIME_type>/*
- A MIME type, but with any subtype.
image/*
will matchimage/png
,image/svg
,image/gif
and any other image types. */*
- Any MIME type
;q=
(q-factor weighting)- Any value used is placed in an order of preference expressed using relative quality factor called the weight.
Examples
Accept: text/html Accept: image/* Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8
Specifications
Specification | Title |
---|---|
{{RFC("7232", "Accept", "5.3.2")}} | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context |
Browser compatibility
The compatibility table in this page is generated from structured data. If you’d like to contribute to the data, please check out https://github.com/mdn/browser-compat-data/README.md and send us a pull request.
{{Compat}}
See also
- HTTP content negotiation
- Header with the result of the content negotiation: {{HTTPHeader("Content-Type")}}
- Other similar headers: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept-Language")}}