目的:當項目資源文件越來越大,提升請求效率就越發迫切,爲了提高瀏覽器響應速度
1.配置 只需在Tomcat的conf下的 server.xml配置就行了 在tomcat你訪問的端口下配置
1. <Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
compressionMinSize="50" n
oCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,application/javascript,text/css"/>
分別對應
- compression="on" 打開壓縮功能
- compressionMinSize="50" 啓用壓縮的輸出內容大小,默認爲2KB
- noCompressionUserAgents="gozilla, traviata" 對於以下的瀏覽器,不啓用壓縮
- compressableMimeType="text/html,text/xml,application/javascript,text/css" 哪些資源類型需要壓縮
2.測試是否配置成功
第一種是直接通過瀏覽器訪問資源 在響應頭中發現 Content-Encoding:gzip 則開啓成功
1已經配置gzip的
2未配置gzip的
第二種是通過自定義測試方法httpClien發送請求訪問資源 配置了的會返回亂碼以及大小爲爲配置壓縮的40%左右
1.所需依賴包
commons-httpclient-3.1.jar commons-codec-1.11.jar
2測試代碼
public static void main(String[] args) throws Exception{
HttpClient http = new HttpClient();
GetMethod get = new GetMethod("http://localhost:8081/Spring-MVC-model/index.badbaa95.js");
try{
//設置請求頭
get.addRequestHeader("accept-encoding", "gzip,deflate");
get.setRequestHeader("Connection", "close");
get.addRequestHeader("user-agent", "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0; Alexa Toolbar; Maxthon 2.0)");
int er = http.executeMethod(get);
if(er==200){
System.out.println(get.getResponseContentLength());
String html = get.getResponseBodyAsString();
System.out.println(html);
System.out.println(html.getBytes().length);
}
}finally{
get.releaseConnection();
}
}
配置gzip壓縮打印對比
1.已經配置gzip的
2.未配置gzip的