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:
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:
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
0 Comentários