11 november, 2011

GZIP-komprimering med Glassfish 3

Häromdagen ville jag använda GZIP för att komprimera storleken på HTML-dokumenten som skickas till till klienten (klienten är en smartphone). I min iver att kunna spara viktig nedladdningstid började jag fräscha upp kunskapen om GZIP, ServletFilter m.m. ända tills jag snubblade över ett tips om hur man "enablar" GZIP i Glassfish 3 (via webbkonsolen).

-För bra för att vara sant tänkte jag, här ska kodas!

Men... Det visade sig att det fungerade utmärkt att få GZIP-komprimering helt automatiskt, inte en rad kod i applikationen! Så här gör man:

Configurations/server-config/Network Config/Network Listeners/http-listener

Scrolla ner en bit, "on", ja tack!
Man kan även lägga till de mime-types som skall komprimeras, perfekt för HTML/Text men även för XML, JSON samt egna Javascript & CSS-filer (ej komprimerade). Den nya inställningen slår igenom direkt på servern, ingen omstart behövs.

Mina enkla tester visade att 100Kb okomprimerat blev ca. 20Kb med GZIP, en ganska stor vinst för vissa sorters klienter. Denna teknik används nu i min lilla mobila nyhetssajt (optimerad för smartphones) som är byggd med JQuery Mobile & JEE 6 på Glassfish 3.