Nos dias atuais nos quais a baixa latência de resposta sobre ambientes Web torna-se um diferencial diante da escolha no acesso de sites pelo usuário, a utilização de técnicas de compressão de dados ganha uma função extremamente importante, comprimir dados, sem perder informações.
Para compressão ser um processo confiável é necessário que a informação entregue no final do segmento seja idêntica a informação original (antes de sofrer a compressão) esse método de compressão é classificado como lossless data compression.
Na plataforma do sistema Local Traffic Manager do F5 BIG-IP são comportados duas classes de compressão e descompressão de dados, são elas: GzipStream e DeflateStream.
Fluxograma de um processo de compressão/descompressão:
Imagem 1 – Fluxograma de Compressão/Descompressão de Dados.
Nos navegadores comumente usados na rede, as duas classes são aceitas e descriminadas dentro do cabeçalho HTTP, por meio do seguinte código de controle:
Accept-Encoding: gzip,deflate
Após ser feita a leitura do cabeçalho HTTP, o BIG-IP entende que poderá realizar a compressão utilizando ambos os métodos e, sua decisão final será tomada com base nas configurações da profile HTTP corrente, a qual possibilita uma eleição flexível, permitindo selecionar o método ideal para o ambiente, seja ele Gzip ou Deflate. A descompressão e leitura dos dados no navegador fluirá automaticamente. Também nesse momento, é adicionado ao cabeçalho HTTP uma nova variável, informando qual recurso foi utilizado pelo BIG-IP. Tudo isso acontece de maneira transparente ao usuário.
Content-Encoding: gzip
As funções de compressão estão disponíveis no BIG-IP por meio de Profiles HTTP e são referenciadas em Virtuais Servers que atendem serviços Web pelo recurso HTTP Profile. Esse procedimento pode ser facilmente configurado com apenas alguns cliques, basta seguir os seguintes passos.
Exemplo de configuração de Compressão:
- Por meio da interface gráfica do BIG-IP, utilize o Menu ao lado esquerdo, clique em Profile – Services – HTTP – Create…
Imagem 2 – Criar Profile HTTP.
Boa prática: criar uma nova Profile HTTP para aplicações que utilizam Compression ou qualquer configuração específica. Assim manteremos seus ajustes exclusivos isolados dos demais serviços, afetando somente aquele que nos interessa.
2. Logo acima em General Properties, é necessário nomear a Profile.
Exemplo: profile_http_compression_agility_80
Boa prática: dando sequência aos títulos classificados pelo sistema, criaremos no padrão: “profile_serviço_feature_ambiente”
Em Parent Profile usaremos também por boa prática de configuração alguns dos seguintes:
- httpcompression.
- wan-optimized-compression.
Imagem 3 –Nomear e configurar Parent Profile.
3. Desça a página até a parte Compression. Agora especificaremos as configurações de compressão:
Imagem 4 – Configurações de Compression.
Após ser nomeado e selecionado o Parent Profile, já teremos habilitada a compressão default do BIG-IP sem que haja maiores esforços, pois, herdamos aquelas que são padrão do sistema. Porém, caso deseje alterar as demais configurações possíveis, basta seguir os seguintes procedimentos:
4. Para ativar a compressão, precisamos primeiro assinalar a opção Compression e selecionar em seu campo, Enabled.
Utilizaremos a compressão de acordo com o conteúdo de extensões na página, assim, assinalamos a opção Content Compression e logo em seguida, mudamos a seleção ao lado para Content List…
No campo Content List é feita a seleção daquilo que será comprimido e quais extensões o BIG-IP irá agir de maneira transparente, sem que haja compressão.
Em Content Type especifique o conteúdo que sofrerá compressão, exemplo: .*\.pdf, .*\.gif, .*\.html.
Include: Inclui na lista de compressão.
Exclude: Inclui na lista de não-compressão.
O BIG-IP é compatível com os dois tipos de compressão mais utilizados pelos navegadores atuais, são eles, Gzip e Deflate, e podem ser alterados no campo Preferred Method.
Os demais campos do Compression podem ser modificados conforme a preferência do Administrador, levando em consideração os requisitos de memória do hardware utilizado. Entretanto, é fortemente recomendado que sejam mantidos os valores padrão do sistema.
5. Pronto!
Agora, no HTTPWatch ou em outra ferramenta de análise Web, para cada acesso que é feito podemos visualizar a quantidade de conteúdo comprimido em bytes e porcentagem por meio do conteúdo total que foi transmitido, e também qual o método de compressão utilizado:
Imagem 5 –Resultado sobre um acesso com técnica Gzip de compressão.
A vantagem de possuir técnicas de compressão em sites Web está diretamente relacionada aos valores agregados na empresa como um todo, pois, ao fazer uso dessa característica podemos levar em consideração:
- Menor tráfego (usuário final/empresa)
- Velocidade do site
- Processamento nos Servidores
- Experiência de Navegação
- Compatibilidade com Navegadores
O comportamento é simples. Consiste em resumir os códigos antes de enviá-los pela rede, e assim transformar grandes dados em apenas alguns pequenos bits, refletindo diretamente no consumo de banda dos links e tempo para término no carregamento do site, ou seja, se a primeira impressão é aquela que vai ficar, sites web lentos sempre serão a segunda opção para o usuário.
Referências: