Menu

sexta-feira, 25 de maio de 2012

Compressão gzip no JBoss AS 7

Compressão gzip é uma boa prática para aplicativos web em que o servidor de aplicação comprime a página ou alguns elementos dela (html, css, javascript, imagens, etc) diminuindo seu tamanho em até  70% e, consequentemente, reduzindo também a carga na rede do servidor. Quando o cliente recebe a página compactada o web browser realiza a descompressão e o conteúdo é exibido ao usuário.

Para habilitá-la no JBoss AS 7 há dois modos. Podemos simplesmente adicionar um parâmetro inicializando-o pelo terminal como demonstrado abaixo:

$./standalone.sh -Dorg.apache.coyote.http11.Http11Protocol.COMPRESSION=on

Podemos também fazer esta configuração no arquivo standalone.xml, dentro da tag server:

<server xmlns="urn:jboss:domain:1.2">
    <system-properties>
        <property name="org.apache.coyote.http11.Http11Protocol.COMPRESSION" value="ON"/>
    </system-properties>
</server>

Para testar se a compressão está realmente habilitada, inicialize o servidor, acesse sua aplicação e por meio do Firebug, ou outra ferramenta equivalente, verifique se as requisições contém Accept-Encoding: gzip,deflate no cabeçalho.

Outra alternativa é utilizar o curl, aplicativo por linha de comando, que pode ser encontrado facilmente nos repositórios das distribuições linux:

ceefour@annafi:~$ curl --raw --compressed -s http://localhost:8080/Aplicacao -o - | wc -c
1259
ceefour@annafi:~$ curl --raw -s http://localhost:8080/Aplicacao -o - | wc -c
2432

A diferença do tamanho da página nos dois comandos executados (um com compressão habilitada e outro desabilitada) indica que a compressão gzip está funcionando adequadamente.

Referências

Solicitação do Suporte à Compressão GZip - https://issues.jboss.org/browse/AS7-2991

Nenhum comentário :