O cabeçalho de requisição HTTP Accept-Encoding
indica qual codificação de conteúdo, usualmente um algoritmo de compressão, o cliente está apto a entender. Usando negociação de conteúdo, o servidor seleciona uma das propostas, a utiliza e informa o cliente da escolha feita com o cabeçalho de resposta Content-Encoding
.
Até mesmo se o cliente e o servidor suportarem os mesmos algoritmos de compressão, o servidor pode escolher não comprimir o corpo da resposta, se o valor de identidade também é aceitável. Dois casos comuns levam a isso:
- Os dados a serem enviados já estão comprimidos e a segunda compressão não irá deixar os dados menores para serem transmitidos. Isso pode ser o caso com alguns formatos de imagens;
- O servidor está sobrecarregado e não pode suportar a sobrecarga computacional induzida pelas exigências da compressão. Tipicamente, a Microsoft recomenda a não comprimir um corpo de resposta se o servidor utiliza mais do que 80% do seu poder computacional.
Enquanto o valor de identity
, que significa sem codificação, não é explicitamente proibido, por um identity;q=0
ou um *;q=0
sem qualquer outra atribuição explícita para a identidade, o servidor nunca deve mandar como resposta um erro 406
Not Acceptable
.
-
Um registro da IANA mantém a lista completa das codificações de conteúdo.
- Duas outras codificações de conteúdo,
bzip
ebzip2
, são algumas vezes utilizadas, entretanto não são o padrão. Elas implementam o algoritmo usado por estes dois programas UNIX. Note que o primeiro foi descontinuado por problemas de patente.
Tipo de cabeçalho | Request header |
---|---|
Forbidden header name | sim |
Sintaxe
Accept-Encoding: gzip Accept-Encoding: compress Accept-Encoding: deflate Accept-Encoding: br Accept-Encoding: identity Accept-Encoding: * // Múltiplos algoritmos, com pesos baseados na sintaxe de quality value: Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5
Diretivas
gzip
- Formato de compressão usando o Lempel-Ziv coding (LZ77), com CRC de 32-bits.
compress
- Formato de compressão usando o algoritmo Lempel-Ziv-Welch (LZW).
deflate
- Formato de compressão usando a estrutura zlib, com o algoritmo de compressão deflate.
br
- Formato de compressão usando o algoritmo de Brotli.
identity
- Indica a identidade da função (i.e. sem compressão, ou sem modificação). Esse valor é sempre considerado como aceitável, mesmo se não estiver presente.
*
- Aceita qualquer codificação de conteúdo ainda não listada no cabeçalho. Esse é o valor padrão se o cabeçalho não estiver presente. Isto não significa que qualquer algoritmo é suportado; meramente que nenhuma preferência é expressa.
;q=
(valores de peso q)- Qualquer valor é colocado em uma ordem de preferência expressada usando a quality value relativa chamada peso.
Exemplos
Accept-Encoding: gzip Accept-Encoding: gzip, compress, br Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
Especificações
Especificação | Título |
---|---|
RFC 7231, sessão 5.3.4: Accept-Encoding | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context |
Compatibilidade de navegador
BCD tables only load in the browser
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 and send us a pull request.
Veja também
- Negociação de conteúdo HTTP
- Cabeçalho com o resultado do conteúdo de negociação:
Content-Encoding
- Outros cabeçalhos similares:
TE
,Accept
,Accept-Charset
,Accept-Language