Accept

The Accept request HTTP header indicates which content types, expressed as MIME types, the client is able to understand. The server uses content negotiation to select one of the proposals and informs the client of the choice with the Content-Type response header. Browsers set required values for this header based on the context of the request. For example, a browser uses different values in a request when fetching a CSS stylesheet, image, video, or a script.

Header type Request header
Forbidden header name no
CORS-safelisted request header yes, with the additional restriction that values can't contain a CORS-unsafe request header byte: 0x00-0x1F (except 0x09 (HT)), "():<>?@[\]{}, and 0x7F (DEL).

Syntax

http
Accept: <MIME_type>/<MIME_subtype>
Accept: <MIME_type>/*
Accept: */*

// Multiple types, weighted with the quality value syntax:
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8

Directives

<MIME_type>/<MIME_subtype>

A single, precise MIME type, like text/html.

<MIME_type>/*

A MIME type, but without a subtype. image/* corresponds to image/png, image/svg, image/gif, and other image types.

*/*

Any MIME type

;q= (q-factor weighting)

A value used is placed in an order of preference expressed using a relative quality value called the weight.

Examples

http
Accept: text/html

Accept: image/*

// General default
Accept: */*

// Default for navigation requests
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8

Specifications

Specification
HTTP Semantics
# field.accept

Browser compatibility

BCD tables only load in the browser

See also