Cabeçalho Content-Encoding

O que é o cabeçalho content-encoding?

O cabeçalho Content-Encoding é usado para compactar o tipo de mídia. Quando presente, seu valor indica quais codificações foram aplicadas ao corpo-entidade.

O que é Compressão GZIP realizada pela GoCache?

A compressão GZIP faz com que as imagens e os conteúdos estáticos sejam comprimidos antes de serem entregues aos usuários. Dessa forma o site é aberto mais rapidamente e é consumido menos banda na CDN.

 

Como ver o cabeçalho content-encoding?

O cabeçalho content-encoding possui 5 valores:

  • br: Um formato que usa o algoritmo de Brotli.
  • compress: Um formato que usa o algoritmo Lempel-Ziv-Welch (LZW).
  • deflate: Usando a estrutura zlib com o algoritmo de compressão deflate.
  • gzip: Um formato que usa a codificação Lempel-Ziv. Este é o formato original do programa gzip do UNIX .
  • identity: Indica a função de identidade (ou seja, sem compressão ou modificação).

 

Via Navegador:

Para visualizar o header via navegador você precisa abrir a aba de "Network" da configurações de desenvolvedor (F12). Veja um exemplo:

mceclip0.png

 

Via cURL:

Para analisar esse header via cURL é necessário atribuir o cabeçalho accept-encoding, mais o seu valor, a sua chamada, por exemplo:

curl https://www.gocache.com.br/ -H 'accept-encoding: gzip' -I

Caso a o conteúdo possua essa função a resposta será algo como:

HTTP/2 200
date: Thu, 17 Sep 2020 16:31:14 GMT
content-type: text/html; charset=UTF-8
pragma: no-cache
p3p: CP="ALL DSP NID CURa ADMa DEVa HISa OTPa OUR NOR NAV DEM"
link: </wp-content/uploads/2019/02/background-home.png>; rel=preload; as=image,</wp-content/themes/enfold/css/print.css?ver=1>; rel=preload; as=style
x-gocache-cachestatus: HIT
server: gocache
content-encoding: gzip

É possível, também, procurar por mais de um valor de content-encoding. Para isso é necessário separar as diretivas por ,.

curl https://www.gocache.com.br/ -H 'accept-encoding: gzip, deflate, compress' -I

 

 

A compactação gzip realizada pela GoCache considera que o arquivo já pode ter um content-encoding diferente?

Quando presente, o cabeçalho accept-encoding, indica quais codificações foram aplicadas ao content-encoding. Mas por padrão a GoCache não envia o cabeçalho accept-encoding, e por isso o conteúdo da hospedagem virá como text/plain.

Se a hospedagem enviar o conteúdo em outra compactação, a CDN não fará a detecção, e se o mime type estiver incorreto (estiver com valor text/*, sendo * qualquer valor, como html) o conteúdo poderá ser comprimido em gzip novamente.

Se a hospedagem enviar, ainda assim, o conteúdo com mime type incorreto é sinal que a hospedagem está mal configurada e irá causar o erro ERR_CONTENT_DECODING_FAILED 200.

Esse erro trata-se de um erro que ocorre quando a requisição alega que o conteúdo está comprimido em gzip enquanto ele não está. No caso a hospedagem manda o cabeçalho Content-Encoding, que indica ao navegador que o arquivo está comprimido, porém ele não passou por nenhuma compressão nesse o que faz com que o navegador interprete isso como um erro.

 

 

Como corrigir esse problema na GoCache?

Para corrigir esse problema na GoCache é necessário criar uma SmartRules com a ação de "Remover cabeçalho de resposta: Content-Encoding". Seguem uma regra de exemplo corrigir esse problema:

remove-content-encoding.png

Caso fique com dúvidas ou tenha algum problema em algum dos passos acima, entre em contato com o nosso suporte. Teremos prazer em ajudá-lo.

 

E-mail: suporte@gocache.com.br

Tem mais dúvidas? Envie uma solicitação

0 Comentários

Por favor, entre para comentar.