The HTTP Accept request header is included in an HTTP message to indicate the types of content that the client can understand.
The HTTP Accept request header is part of the Content Negotiation process and specifies which MIME types the client is able to understand during communication with the server. Internet browsers such as Chrome, Firefox, and Microsoft Edge set values for this based on the type of HTTP request.
There are several ways that this HTTP header can be used, as follows:
This specifies a particular content type, such as
This specifies a general type, without including the detail required for particular subtypes. For example,
text/* informs the server that the client is willing to accept all text documents, whether they are
text/html, or otherwise.
This HTTP header indicates that any type of content is allowed.
Multiple types and q-factor weighting
Several types can be specified on a single line, and the preference of one over another can be weighted using the q-factor. The q-factor, included using the suffix
;q=, states that the client is willing to accept this set at a relative priority. If no priority is included then the default value of 1.0 is used.
In this example, several acceptable types are indicated by the same HTTP header.
Accept: text/html, text/plain;q=0.9, text/*;q=0.8, */*;q=0.7
This HTTP Accept request header indicates that
text/html resources are given priority 1.0, whereas
text/plain content has a priority of 0.9. Less specific text resources have a priority of 0.8, and the remainder is considered equal with a priority of 0.7.
If two types are of the same priority but have different specificity, then deference is given to the more specific type. For instance, if
text/* both have a priority of 1.0, then
text/html is selected.
The HTTP Accept request header is used by clients to inform servers concerning types of content they can understand, and relatively which types they prefer to receive.