1. 程式人生 > >gzip的介紹以及web伺服器對檔案壓縮的支援

gzip的介紹以及web伺服器對檔案壓縮的支援

GZIP和HTTP

       GZIP是一種檔案壓縮標準,能夠大幅度的減少檔案本身大小和佔用的儲存空間。現今已經成為Internet 上使用非常普遍的一種資料壓縮格式,或者說一種檔案格式。

通過HttpWatch或者burp suite等抓包工具,可以檢視http頭部 Accept-Encoding的值,如果該欄位顯示的是"gzip,deflate",就代表該瀏覽器能夠識別gzip格式的檔案。

這樣伺服器就可以將檔案壓縮成gzip,以便減少瀏覽器下載檔案的時間。gzip和伺服器對處理gzip過程簡介:

靜態壓縮和動態壓縮

      可以預先將html/css等檔案,使用gzip工具直接壓縮,將壓縮後的檔案放在伺服器,瀏覽器直接引用壓縮後的檔案就可以了,這樣可以節省動態壓縮帶來的開銷。比如
myapp.js檔案,通過壓縮後變成myapp.gzjs。在html中可以通過<script type="text/javascript" src="myapp.gzjs"></script>。

gzip的實現

1、java jdk內建對gzip的支援,可以通過使用GZIPInputStream和GZIPOutputStream進行壓縮和解壓縮。
這2個類使用都比較簡單,這裡不再贅述。


weblogic的配置可以參考http://www.blogjava.net/xggc63/archive/2011/05/25/342979.html
jboss的配置如下,在jboss-4.2.3.GA\server\default\deploy\jboss-web.deployer\server.xml中新增

<Connector port="8080" address="${jboss.bind.address}"    
         maxThreads="250" maxHttpHeaderSize="8192"
         emptySessionPath="true" protocol="HTTP/1.1"
         enableLookups="false" redirectPort="8443" acceptCount="100"
         connectionTimeout="20000" disableUploadTimeout="true"  URIEncoding="utf-8"  
   compressableMimeType="text/html,text/xml,text/css,text/javascript,application/x-javascript,application/javascript" 
   compressionMinSize="2048" noCompressionUserAgents="gozilla,traviata" />