Indicates the natural language and locale that the client prefers.
This header is defined by an external standard.
The Accept-Language request HTTP header indicates the natural language and locale that the client prefers. The server uses content negotiation to select one of the proposals and informs the client of the choice with the
Content-Language response header. Browsers set required values for this header according to their active user interface language.
Accept-Language are designed to allow for content negotiation. For content negotiation to work properly on content served through Fastly, the
Vary header must be correctly set. See our blog post Getting the most out of Vary with Fastly for a discussion of the best practices and patterns that you may find useful.
Fastly ignores this header but preserves it on requests. Origin servers that take notice of the value of
Accept-Language on any request to a given URL and respond with content in a language matching that requested must include a
Vary: Accept-Language on all responses for requests to that same URL. This enables Fastly to store each language version of the content separately and ensure each user receives the right language.
The number of possible permutations of
Accept-Language values is very large, and if responses include
Vary: Accept-Language, cache performance may noticably decline. Normalizing the value of
Accept-Language on inbound requests can dramatically improve cache hit ratios in this situation.
Fastly does not normalize
Accept-Language by default, but we provide utilities to make it easy to do so in VCL services. See
accept.language_filter_basic for more details.