Di solito è una buona cosa comprimere con
gzip tutto il traffico http in chiaro di
Vaadin, per la velocità e in modo da minimizzare la quantità di dati trasferiti. Per farlo bisogna configurare il server, ed è un concetto applicabile in generale e non solo per Vaadin.
Quando la compressione gzip è abilitata, il server comprime i dati inviati al browser, spesso con conseguente riduzione notevole della dimensione dei dati trasferiti e quindi del tempo di download.
Non vogliamo comprimere roba che è già molto compressa, come ad esempio i file JPEG, perciò dobbiamo fare in modo che il server conosca quali mime-type vogliamo comprimere. Di solito il server è preconfigurato per comprimere alcuni tipi noti, come HTML e CSS, ma un mime-type che di solito manca è quello utilizzato per la comunicazione JSON che utilizza Vaadin, cioè
application/json.
Vediamo come configurare Tomcat
In
Tomcat, è necessario configurare il connettore per avere
compression="on" ed impostare
compressableMimeType con l'appropriato mime-type (il default di Tomcat 7 è "text/html, text/xml, text/plain", ed effettivamente manca application/json). Inoltre, è possibile impostare il
compressionMinSize per soddisfare le
raccomandazioni di Google. E' possibile farlo nel file
server.xml:
<Connector port="8080"
…OTHER STUFF...
compression="on"
compressionMinSize="500"
compressableMimeType="text/html,text/xml,text/plain,application/javascript,application/json"/>
Buon utilizzo!