Como posso saber se meu servidor está servindo conteúdo GZipped?


160

Eu tenho um aplicativo da web em um servidor NGinx. I definido gzip onno arquivo conf e agora eu estou tentando ver se funciona. O YSlow diz que não, mas 5 dos 6 sites que fazem o teste dizem que sim. Como posso obter uma resposta definitiva sobre isso e por que há uma diferença nos resultados?

Respostas:


229

Parece que uma resposta possível é, sem surpresa, curl:

$ curl http://example.com/ --silent --write-out "%{size_download}\n" --output /dev/null
31032
$ curl http://example.com/ --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null
2553

No segundo caso, o cliente informa ao servidor que ele suporta codificação de conteúdo e você pode ver que a resposta foi realmente menor, compactada.


3
Isso é verdade, mas o gzip pode ser configurado para compactar certos tipos de arquivos e excluir outros. Portanto, verifique se os arquivos que você enrola usando este teste são do tipo que será compactado.
Tyler Biscoe

5
Gostaria de sugerir o uso de -Lbandeira para curltambém seguir todos os redirecionamentos, por exemplo, de não-www para www.o contrário resultar da size_download pode estar errado
vladkras

Se eu pudesse impressionar uma coisa em meus desenvolvedores mais jovens, é a importância de ter uma base sólida para o unix. +1 para CURL. É confuso no começo, um salva-vidas quando você o conhece.
Akron

105

Atualizar

O Chrome mudou a forma como informa (consulte a resposta original, se estiver interessado). Você pode saber usando as Ferramentas do desenvolvedor (F12). Vá para a guia Rede, selecione o arquivo que deseja examinar e, em seguida, consulte a guia Cabeçalhos à direita. Se você for compactado com o gzip, verá isso na codificação de conteúdo.

Neste exemplo, slider.jpg está de fato sendo compactado.

insira a descrição da imagem aqui

Compare isso com esta página em que você está e veja um arquivo png; você não verá essa designação.

insira a descrição da imagem aqui

Só para ficar claro, não é porque um é um jpg e um é um png. É porque um é compactado e o outro não.


Resposta Anterior

No Chrome, se você acessar as Ferramentas do desenvolvedor e acessar a guia Rede, mostrará o seguinte se não houver compactação:

insira a descrição da imagem aqui

E o seguinte, se houver compressão:

insira a descrição da imagem aqui

Em outras palavras, o mesmo número, superior e inferior, significa sem compactação.


3
Pode ser melhor inspecionar os cabeçalhos de resposta. Este método não indica se a compactação gzip é usada ou algum outro algoritmo de compactação.
Samuel

4
Nas Ferramentas do desenvolvedor do Chrome, na guia Rede, clique no nome / link do ativo da solicitação e você pode inspecionar os cabeçalhos de resposta assim e ver gzipa chave de codificação de conteúdo! [Screenshot] [1] [1]: i.stack .imgur.com / Bpb5W.png (http://content.screencast.com/users/…
d48 4/14

1
As versões recentes do chrome (Versão 44.0.2403.130 m) não parecem mostrar os detalhes de tamanho / conteúdo - quero dizer os detalhes do gzip - i.imgur.com/MTz7DCM.png . Alguém sabe o motivo?
Andy Dufresne

33

Veja nos cabeçalhos de resposta. No FireFox, você pode verificar com o Firebug.

Content-Encoding    gzip

Se o servidor suportar conteúdo gzip, isso deverá ser exibido.


9
Você só conseguirá isso se o seu cliente tiver enviado "Accept-Encoding: gzip, deflate" #
Maciej Swic

2
Atualização definitiva para ver a codificação do arquivo original, pois quando o arquivo é exibido com o status 304, parece que a versão em cache já está descompactada! (no meu caso, eu estou vendo um cabeçalho ETag em vez de Content-Encoding)
PTIM

11

Na nova versão do chrome, Ferramentas do desenvolvedor> rede, você pode clicar com o botão direito do mouse em Nome da coluna, selecionar a opção de codificação de conteúdo e adicionar essa coluna (caixa preta na imagem).

e se você quiser ver o tamanho desse conteúdo gzip, como @Outfast Source -, clique no ícone ao lado de Exibir (exibido como caixa verde na imagem).

para que você possa ver qual conteúdo está ativado para gzip.

insira a descrição da imagem aqui


Esta é uma ótima resposta, mas a <kbd> Codificação de Conteúdo </kbd> foi movida em <kbd> Cabeçalhos de Resposta </kbd>.
Dan Dascalescu


8

Eu escrevi este script com base na resposta do zoul:

#!/bin/bash

URL=$1
PLAIN="$(curl $URL --silent --write-out "%{size_download}\n" --output /dev/null)"
GZIPPED="$(curl $URL --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null)"

if test $PLAIN -gt $GZIPPED
then echo "supported"
else echo "unsupported"
fi

exemplo:

$ ./script.sh https://example.com/
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.