O que é o GZIP e como melhora a velocidade de um site

O que é o GZIP e como melhora a velocidade de um site

26 de fevereiro de 2017 0 Por Ramos de Souza Janones

Claro que a velocidade de um site depende de diversos fatores. Um deles é o servidor. Este servidor que armazeno a Ramos da Informática, por exemplo, é MUITO RUIM. E como não vendo produtos nem serviços vai continuar assim por um bom tempo. Mas vamos falar da solução GZIP.

Gzip é um formato de compactação de dados. Vem de GNU Zip.

Quando ele está habilitado (pode ligar e desligar para cada tipo de conteúdo) no servidor é possível transmitir o conteúdo web mais rapidamente por ter um volume menor de dados. Claro que o cliente que irá receber os dados tem que permitir isso também, caso contrário ele não saberá descompactar.

Em geral só deve ser usado para textos, já que outros conteúdos costumam ter formatos naturalmente compactados.

Certamente há ganhos em conteúdo estático já que a compactação pode ser feita previamente uma vez.

Em conteúdo dinâmico provavelmente não compensa, porque o ganho de tempo obtido pela compactação se perde pelo tempo gasto para compactar. Cada vez que gera um novo conteúdo no servidor tem que compactar antes de enviar para o cliente.

Só um teste com situações reais pode determinar se ele será mais útil que estorvo, mas quase sempre não dá bom resultado.

A compactação é feita com algoritmos que procura por padrões de repetição e frequência de uso, além de redundâncias, tudo o que pode ser usado para representar um dado de forma menor do que o original. Esses algoritmos são grandes consumidores de processamento, envolve muita matemática.

Ele usa dois algoritmos, o LZ77 e o Huffman. Dependendo do tipo de dado um pode ser mais apropriado que outro. Em textos como o HTML, CSS e JS é possível obter reduções superiores a 90%.

Imagens e sons costumam usar os mesmos algoritmos ou muito semelhantes a estes em seus arquivos. Se tentar compactar pelo servidor HTTP esse tipo de arquivo o ganho é mínimo ou inexistente já que eles são compactados. Pode haver ganho porque pode estar aplicando um algoritmo diferente.

O processo é o mesmo que se usa para arquivos .zip, .rar, .7zip, .ARC, etc.

O gzip é usado para compactar os arquivos que o seu website manda para o navegador e assim ganhar velocidade na transmissão desses arquivos.

Conforme informação tirada do link abaixo, você pode ter um ganho de até 70% no tempo de transferência ativando a compactação de arquivos.

https://helabs.com/artigos/2013/02/01/melhorando-a-performance-do-web-site-com-gzip/

Cada plataforma tem a sua maneira de habilitar a funcionalidade. No IIS é só ir no seu website e na opção “Compactação” e habilitar a funcionalidade conforme imagem abaixo:

Observações

Da mesma forma que você “zipa” arquivos para reduzir o tamanho e enviar por email, os servidores Web podem ser configurados para fazer o mesmo com os arquivos que ele envia para o cliente. No final, o objetivo é fazer um uso mais racional dos recursos de rede (transmissão e recepção de dados). Gzip é um dos formatos existentes para compactação de arquivos.

Obviamente, o ganho será muito baixo ao fazer isso para um JPG, PDF, entre outros. Isso ocorre, pois esses arquivos já tem o seu formato compactado.

Porém, quando se trata de HTML, CSS e Javascript, o ganho pode ser enorme, já que são essencialmente arquivos texto, cujo a taxa de compactação é muito alta.

Entretanto, deve-se observar que, para conteúdos (exemplo HTML) que são gerados dinamicamente, o ganho pode não ser tão grande, já que a compactação e descompactação terá que ser feita para cada requisição. Em outras palavras, num contexto de conteúdo dinâmico, pode ser que se gastará mais tempo compactando e descompactando do que efetivamente transmitindo.

Por outro lado, para conteúdos estáticos o benefício da compactação pode ser percebido mais facilmente, já que os conteúdos serão zipados uma única vez. A a descompactação também pode ser minimizada, caso o conteúdo seja cacheado no lado do cliente.

Praticamente todo servidor WEB e os clientes (como os navegadores) possuem essa funcioalidade. Um estudo deve ser feito caso a caso, verificando se vale ou não a pena ativar essa funcionalidade.

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.
LEIA TAMBÉM:  Qualidade de Software: Uma questão de eficiência.