public interface Compression
If you're not using the Smart GWT Java back-end, there are several compression solutions available, depending on your server of choice. Microsoft's IIS has built-in compression capability, please check the reference manual for details. If you're using Apache, you can use mod_gzip or use mod_deflate. Some servlet containers also natively support dynamic compression.
The Smart GWT Java back-end supports three types of response compression:
To serve pre-compressed static content via FileDownload, register the FileDownload servlet in your web.xml as follows:
      <servlet>
        <servlet-name>FileDownload</servlet-name>
        <servlet-class>com.isomorphic.servlet.FileDownload</servlet-class>
      </servlet>
  
  Then map any resource that you want to serve compressed to the FileDownload servlet in your
  web.xml.  Typically, you'll want to serve all Smart GWT modules compressed.  You can do so
  by adding the following servlet-mapping directive to your web.xml:
  
      <servlet-mapping>
        <servlet-name>FileDownload</servlet-name>
        <url-pattern>/isomorphic/system/modules/*</url-pattern>
      </servlet-mapping>
  
  Finally, you'll need to create pre-compressed versions of your files alongside the
  uncompressed versions.  If you're using the FileAssembler mechanism, it can create
  pre-compressed files for you automatically.  For all other files, you can use any program
  that uses the gzip encoding.  The compressed file must have exactly the same filename as the
  uncompressed version, with a '.gz' extension.  Note that it's important that both the
  compressed and uncompressed versions be present alongside each other because there are cases
  where serving compressed content is not possible (for example HTTP 1.0 requests) - for those
  situations it's important that the uncompressed files be available to be served to the
  client.  The FileDownload filter automatically detects whether or not compression is
  possible.
  Dynamic Compression
Dynamic Compression requires the optional Network Performance module. To use Dynamic Compression, register the CompressionFilter filter in your web.xml as follows:
      <filter>
          <filter-name>CompressionFilter</filter-name>
          <filter-class>com.isomorphic.servlet.CompressionFilter</filter-class>
      </filter>
  
  Then map any resource that you want dynamically compressed to this filter.  Note that the
  CompressionFilter knows the mime types that are compressible and will automatically ignore
  any stream that sets a content-encoding header, and it automatically figures out if the
  current request is an include or forward (and doesn't compress in that case), so it's safe
  to simply map it to all resources as follows:
  
      <filter-mapping>
          <filter-name>CompressionFilter</filter-name>
          <url-pattern>/*</url-pattern>
      </filter-mapping>
  
  You can register the CompressionFilter anywhere in your filter chain, but be aware that
  if any filters in front wrap and inspect the HttpServletResponse output stream, they will
  be inspecting the compressed response.  Filters are typically applied in the order in which
  they are listed in web.xml and it is advised to keep them that way, otherwise it may result 
  in unexpected behavior. For example, if CompressionFilter would be listed after the 
  JSSyntaxScannerFilter, the last one would stop working, since it relies on uncompressed data.
  Automatic Compression of DSRequest, RPCRequest and DataSourceLoader responses
 By default, Smart GWT Server compresses the responses to all DSRequests, 
 RPCRequests and DataSourceLoader requests, whether
 or not the 
  CompressionFilter is registered.  If you want to switch off this automatic 
  compression, add the following line to your server.properties file:
     servlet.compress: false
  
  Compressible mime types and compatibility
  The FileDownload servlet and CompressionFilter filter can serve the following mime-types compressed: text/html, text/xml, application/x-javascript, text/javascript, text/ecmascript, image/svg+xml, application/javascript, application/json. If your files are not being compressed, make sure your servlet container has a mime type mapping that identifies it as one of the above file types.
Compression for the mime types listed above is supported on all browsers supported by Smart GWT. There is one exception: compression of javascript files for IE versions older than IE6 Service Pack 2 requires that the CompressionFilter be registered to dynamically compress the page that loads these javascript files.