Accept-Charset

O cabeçalho de requisição HTTP Accept-Charset anuncia quais character encodings o cliente entende. Usando negociação de conteúdo, o servidor seleciona uma das codificações, a utiliza, e informa o cliente da sua escolha dentro do cabeçalho de resposta Content-Type, geralmente em um parâmetro charset=. Navegadores geralmente não mandam este cabeçalho, por que o valor padrão para cada recurso geralmente está correto e transmiti-lo iria permitir fingerprinting.

Se o servidor não pode servir nenhum codificação de caracteres vindo deste cabeçalho de requisição, ele pode teoricamente manda de volta um código de erro 406 Not Acceptable. Mas para uma melhor experiência de usuário, isso raramente é feito e o cabeçalho Accept-Charset é ignorado.

Nas versões mais antigas do HTTP/1.1, a codificação de caracteres definida era: ISO-8859-1. Isto não é mais recomendado, e agora todo tipo de conteúdo tem o seu próprio padrão.

O UTF-8 é agora muito bem suportado e extremamente recomendado como codificação de caracteres preferida. Para garantir melhor privacidade e através de menor entropia com base em configuração, todos os navegadores omitem o cabeçalho Accept-Charset: Internet Explorer 8+, Safari 5+, Opera 11+, Firefox 10+ e Chrome 27+ não o enviam mais.
Tipo de cabeçalho Request header
Forbidden header name sim

Sintaxe

Accept-Charset: <charset>

// Múltiplos tipos, com pesos baseados na sintaxe de quality value (en-US):
Accept-Charset: utf-8, iso-8859-1;q=0.5

Diretivas

<charset>
O nome da codificação de caracteres, como utf-8 ou iso-8859-15.
*
Qualquer codificação de caracteres não mencionada em qualquer lugar no cabeçalho; * é usado como coringa.
;q=<weight>
Qualquer codificação de caracteres é colocado na ordem de preferência, expresso usando um quality value (en-US) relativo chamado de peso.

Exemplos

Accept-Charset: iso-8859-1

Accept-Charset: utf-8, iso-8859-1;q=0.5

Accept-Charset: utf-8, iso-8859-1;q=0.5, *;q=0.1

Especificações

Especificação Título
RFC 7231, sessão 5.3.3: Accept-Charset Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context

Compatibilidade de navegador

No compatibility data found for http.headers.Accept-Charset.
Check for problems with this page or contribute missing data to mdn/browser-compat-data.

Veja também