咱們在使用Tomcat優化配置時,都會開始Tomcat的Gzip壓縮功能,配置以下: javascript
<Connector port="8080" ... compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla,traviata" compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain" />參數說明:
注意:tomcat7之後,js文件的mimetype類型變爲了application/javascript,具體的tomcat7定義的類型能夠在:conf/web.xml文件中找到。 css
那麼咱們如何測試配置的Gzip壓縮功能生效了呢?
答案就是:使用apache HttpClient訪問該tomcat加載項目中的一個靜態資源(好比一個js文件),而後打印請求的資源內容 或 資源ContentLength,若是打印的資源內容爲亂碼 或 ContentLength爲 -1,則說明gzip生效了。
代碼以下: html
public static void main(String[] args) { String uri = "http://localhost:8080/gziptest/jquery.js"; HttpClient httpClient = new DefaultHttpClient(); HttpGet get = new HttpGet(uri); ResponseHandler<String> responseHandler = new BasicResponseHandler(); try { // 設置模擬頭部 get.setHeader("Accept-Encoding", "gzip,deflate"); get.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36"); String content = httpClient.execute(get, responseHandler); System.out.println(content); // 若是gzip生效,這裏會打印出亂碼;不然會打印出jquery.js的內容 /* HttpResponse response = httpClient.execute(get); long cLen = response.getEntity().getContentLength(); System.out.println(cLen); // 若是gzip生效,這裏打印的長度值將會是 -1 或一個比原始文件大小小不少的值 */ } catch(Exception e) { // ignore ... } finally { httpClient.getConnectionManager().shutdown(); } }