Como funciona a compressão GZIP / Deflate

A compressão de um site é um processo transparente para o usuário, mas é bom que conheçamos um pouco sobre como se realizam internamente as comunicações HTTP.

Por Programação Pular para comentários
Como funciona a compressão GZIP / Deflate

A compressão de um site é um processo transparente para o usuário, mas é bom que conheçamos um pouco sobre como se realizam internamente as comunicações HTTP.

No artigo anterior mostramos alguns detalhes interessantes sobre a compressão GZIP, sobre como funciona e quais são as vantagens dessse modo de otimização das páginas web. Agora vamos ver como funciona na prática esse sistema.

Para poder entender a compressão por GZIP, ou outros métodos de compressão como o Deflate, temos que conhecer um pouco sobre as comunicações HTTP, que é o protocolo utilizado para o acesso a páginas web. Como sabemos, toda comunicação entre cliente e servidor responde a um mesmo esquema, que é justamente esse protocolo, um modo de operar definido para as comunicações entre clientes e servidores web.

De uma maneira muito esquemática, esses são os passos que realizam em uma comunicação HTTP entre o servidor web e o navegador:


  1. O cliente web (navegador) solicita uma página
  2. O servidor recebe a comunicação, comprova se existe o arquivo solicitado
  3. O servidor envia o arquivo
  4. O cliente (navegador) o exibe

Para implementar esse protocolo, na prática, os sistemas cliente e servidor trocam informações de controle entre si, nos cabeçalhos HTTP da solicitação e a nas respostas. Nos cabeçalhos HTTP, tanto na solicitação com na resposta, são alocadas muitas informações para controle e especificação da comunicação, na realidade só o que nos interessa agora são os dados enviados para definir se há compressão ou não.

Quando o cliente web solicita uma página, no passo 1, envia nos cabeçalhos HTTP um código de controle para dizer se aceita ou não o envio dos arquivos comprimidos e que formatos são permitidos.

O cliente que solicitou a página enviará uma variável chamada "accept-encoding" que terá como valor os formatos de compressão que o navegador suporta. Atualmente todos os navegadores modernos aceitam compressão GZIP e Deflate, e nos cabeçalhos HTTP da solicitação teremos o seguinte código de controle:
Accept-Encoding: gzip,deflate

Isso quer dizer que o navegador aceita os formatos de compressão GZIP e Deflate. O servidor que recebe esse cabeçalho, poderá então enviar os arquivos solicitados ao cliente em algum dos formatos especificados no cabeçalho HTTP, com a certeza de que o cliente poderá acessá-los perfeitamente. Dependendo de como for configurado o servidor, os arquivo poderão ser enviados comprimidos ou não.

O servidor web também envia nos cabeçalhos dos arquivos de resposta das comunicações HTTP uma variável para informar se os arquivos foram comprimidos ou não. No caso dos arquivos terem sido comprimidos, ele informa o formato da compressão.
Content-Encoding: gzip

Nessa variável, o servidor web está indicando que a resposta enviada está no formato de compressão GZIP.

Existem diversas maneiras de configurar um site para que as paginas sejam enviadas comprimidas, assim como outros arquivos externos também. Nos próximos artigos veremos diversas práticas nesse sentido, começando com explicações sobre como configurar o servidor para que seja feita a compressão de páginas PHP.

Compartilhe com seus amigos:
Jonathan Lamim
Jonathan Lamim Empreendedor digital, ex-programador (decidi abandonar a carreira após 12 anos), especialista em marketing de conteúdo e agora atuando exclusivamente com Marketing Digital, em projetos de Marketing de Conteúdo, produção de conteúdo para internet, além de escrever ebooks e criar cursos ligados ao marketing digital de um modo geral.
FACEBOOK // TWITTER: @jonathanlamimkt
Quer conversar com o(a) Jonathan, comente:
Carregar comentários
Últimas notícias de Programação
  • Google usa Mulher-Maravilha para ajudar meninas a programar

    Google usa Mulher-Maravilha para ajudar meninas a programar

    Meninas ganham um incentivo extra na hora de aprender a programar, a Mulher-Maravilha.

  • Criando um cadastro de usuário em Java

    Criando um cadastro de usuário em Java

    O objetivo deste artigo é desenvolver uma aplicação em JSE (Java Standard Edition) de inserção de dados utilizando alguns padrões de projeto.

  • Quer aprender PHP? Saiba mais

    Quer aprender PHP? Saiba mais

    Chegou o tão aguardado curso online de PHP do Oficina da Net. Você não pode perder. PHP é uma das linguagens mais usadas no mundo. Os conteúdos que vou mostrar no curso, são exatamente o que você precisa saber para iniciar sua carreira como programador.

  • Formulário de contato em php

    Formulário de contato em php

    Guia do PHP: Aprenda a fazer um formulário em PHP que envia via SMTP autenticado o e-mail para um destinatário.

  • Como fazer um GIF?

    Como fazer um GIF?

    Aprenda a criar um GIF animado de vídeos. Descubra como criar os GIFs, imagens animadas que você vê em na internet.

  • O que priorizar na hora de escolher o hosting para seu site?

    O que priorizar na hora de escolher o hosting para seu site?

    Com o crescimento das ofertas na web, saiba o que você deve levar em consideração na hora de escolher a melhor empresa de hosting para seu empreendimento

  • O que preciso fazer para criar um aplicativo?

    O que preciso fazer para criar um aplicativo?

    Temos visto que desenvolver aplicativos que visam o mercado mobile pode ser mais que uma alternativa rentável, pode colocá-lo no topo, deixá-lo rico. Mas nem tudo são flores, e o aspirante a desenvolvedor de app precisa seguir algumas regras.

  • WEBINAR 3.9

    WEBINAR 3.9

    Venha para o Maker e descubra como tornar o seu negócio mais competitivo.