*修改自網路文章,文章源頭不確定
HTTP 壓縮可以大大提高瀏覽網站的速度
它的原理是,在客戶端請求網頁後,從Server將網頁文件壓縮
再下載到Client,由Client的瀏覽器負責解壓縮並瀏覽
相對於普通的瀏覽過程HTML ,CSS,JavaScript , Text ,它可以節省40%左右的流量
更為重要的是,它可以對動態生成的
包括CGI、PHP、JSP、ASP、Servlet、SHTML等輸出的網頁也能進行壓縮
一,對於Tomcat5.0以後的版本支持對輸出內容進行壓縮,使用的是gzip壓縮格式.
要使用gzip壓縮功能,你可以在Connector實例中加上如下屬性即可
1. compression="on" 打開壓縮功能
2. compressionMinSize="2048" 啟用壓縮的輸出內容大小,這裡預設2KB
3. noCompressionUserAgents="gozilla, traviata" 對於以下的瀏覽器,不啟用壓縮
4. compressableMimeType="text/html,text/xml" 壓縮類型
下面是$tomcat_home$/conf/server.xml的配置內容
<Connector port="8080" protocol="HTTP/1.1"
compression="on"
compressionMinSize="2048"
connectionTimeout="20000"
compressableMimeType="text/html,text/xml,text/plain,
text/css,text/json,text/javascript,
application/x-javascript,application/javascript,
application/jsp,application/json,image/jpeg,image/png"
redirectPort="8443" />
對於某些text文件比如:log、txt等,我們也可以讓Server採用gzip壓縮傳輸
修改conf目錄下web.xml,添加
<mime-mapping>
<extension>log</extension>
<mime-type>text/plain</mime-type>
</mime-mapping>
就可以指定壓縮傳輸了
通常情況下,壓縮傳輸能大幅度提高展示速度
二,對於Apache而言,有兩種情況
1.針對Apache2.0之前的版本,它原本是不支持的
不過可以通過添加第三方的module_gzip模組來啟用
2.針對Apache2.0及之後的版本,Apache提供支持;不過不叫gzip,而叫mod_deflate
下面就對Apache2.0及之後的版本作一個說明
1. 去掉#LoadModule headers_module modules/mod_headers.so前面的註釋#,
2. 添加LoadModule deflate_module modules/mod_deflate.so
3. 在VirtualHost中添加
<Location "/">
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
</Location>
以下為完整範例
# 加載deflate模組
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so
<VirtualHost *:80>
DocumentRoot f:/apacheTest
<Location "/">
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
</Location>
</VirtualHost>
沒有留言:
張貼留言