Eu tenho um servidor Jetty que não tem compactação ativada ( testei aqui ). Como posso ativar a compactação?
Eu tenho um servidor Jetty que não tem compactação ativada ( testei aqui ). Como posso ativar a compactação?
Respostas:
Você precisa habilitar o GzipFilter
Jetty para retornar o conteúdo compactado. Veja aqui como fazer isso: http://blog.max.berger.name/2010/01/jetty-7-gzip-filter.html
Você também pode usar o gzip
parâmetro init para fazer o Jetty procurar conteúdo compactado. Isso significa que, se o arquivo file.txt
for solicitado, o Jetty procurará um arquivo nomeado file.txt.gz
e o retornará.
No Jetty 8 (?) E posterior, você terá que usar um o GzipHandler
que GzipFilter
parece estar obsoleto / ausente:
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="handler">
<New class="org.eclipse.jetty.server.handler.GzipHandler"/>
<!-- package name might have changed in Jetty 9; possibly org.eclipse.jetty.server.handler.gzip.GzipHandler
as per /programming/35725538/jetty-gziphandler-configuration -->
</Set>
</Configure>
O gzip
parâmetro init ainda funciona, caso você queira servir apenas conteúdo estático (o que de fato seria mais eficiente do que passar pelo manipulador GZip). No entanto, é aconselhável manter as cópias não compactadas no servidor também, pois o Jetty pode precisar fornecer conteúdo não compactado para navegadores incompatíveis (principalmente o IE) .
WEB-INF/jetty-env.xml
do webapp (existem outras opções, bem como, jetty-web.xml
, web-jetty.xml
, classes/org/eclipse/jetty/webapp/webdefault.xml
, ...)