Accept-Encoding

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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.

Nota: Notas:- Um registro da IANA mantém a lista completa das codificações de conteúdo.

  • Duas outras codificações de conteúdo, bzip e bzip2, 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 com navegadores

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Accept-Encoding

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Veja também