title: 2017/4/2/01
date: 2017-04-02 09:45:32
說在前面
項目即將上線了,現(xiàn)在在各種優(yōu)化,第一步肯定是從帶寬入手了,可是帶寬說穿了就是Money,要加大就得付費,剛剛好我們團隊現(xiàn)在神馬都不缺,就卻錢,所以只能另尋它法,最后瞄準了數(shù)據(jù)壓縮,就是將從服務器傳輸?shù)娇蛻舳说臄?shù)據(jù)進行壓壓壓!
描述
gzip是http協(xié)議中使用的一種加密算法,客戶端向web服務器端發(fā)出了請求后,通常情況下服務器端會將頁面文件和其他資源,返回到客戶端,客戶端加載后渲染呈現(xiàn),這種情況文件一般都比較大,如果開啟gzip ,那么服務器端響應后,會將頁面,JS,CSS等文本文件或者其他文件通過高壓縮算法將其壓縮,然后傳輸?shù)娇蛻舳?,由客戶端的瀏覽器負責解壓縮與呈現(xiàn)。通常能節(jié)省40%以上的流量(一般都有60%左右),一些html,JSP文件也能夠進行壓縮。
由于我們的項目是部署在tomcat上的,所以直接以tomcat為例子
1、首先打開tomcat目錄下的conf下的server.xml,找到一下信息:
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
2、在找到的信息里邊添加部分配置信息,變成如下所示:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" executor="tomcatThreadPool" URIEncoding="utf-8"
compression="on"
compressionMinSize="2048" compressableMimeType="application/json,text/html,text/xml,application/javascript,text/css,text/plain"
/>
配置信息:
compression="on" // 打開壓縮功能
compressionMinSize="2048" // 啟用壓縮的輸出內(nèi)容大小,默認為2KB
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" // 哪些資源類型需要壓縮,版本不同,可能這個配置會不同,具體的參考同目錄下的web.xml中mime-mapping里邊的內(nèi)容
3、重啟tomcat即可
那么問題來了,配置了之后如何知道是否生效了呢
- 方式一:在瀏覽器訪問之后查看,例如:

- 方式二:在http://www.gidnetwork.com/tools/gzip-test.php 這個網(wǎng)站里邊進行測試,如未壓縮的:

壓縮過的:

ps:從這幅圖中也可以看出壓縮的幅度有多大了,沒有壓縮前服務器返回的字節(jié)數(shù)是4851,而在壓縮過后服務器返回的數(shù)據(jù)就變成了1766,而壓縮率達到了63.6%。
Note:發(fā)布的這些文章全都是自己邊學邊總結的,難免有紕漏,如果發(fā)現(xiàn)有不足的地方,希望可以指出來,一起學習咯,么么噠。
開源愛好者,相信開源的力量必將改變世界:
** osc :** https://git.oschina.net/xi_fan
github: https://github.com/wiatingpub