標籤:blog http java 使用 io 檔案 ar div
從服務端最佳化來說,通過對服務端做壓縮配置可以大大減小文字檔的體積,從而使載入文本的速度成倍的加快。目前比較通用的壓縮方法是啟用gzip壓縮。它 會把瀏覽器請求的頁面,以及頁面中引用的靜態資源以壓縮包的形式發送到用戶端,然後在用戶端完成解壓和拼裝.具體是實現不用關心,我們只要將GZip啟用 就好.是使用相關工具檢測沒有開啟網頁壓縮的效果。如下步驟我們就來具體開啟基於apache的GZip壓縮支援。
偵查工具:
http://www.whatsmyip.org/http-compression-test/?url=d3d3LmZlbmd6aWdhbWUuY29t
Firefox的 firebug
實現步驟
1.找到並開啟apache/conf目錄中的httpd.conf檔案
2.httpd.conf中開啟deflate_Module和headers_Module模組,具體做法為將 如下兩句前面的#去掉:
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
3.在httpd.conf檔案底部加入如下代碼配置需要壓縮的檔案:
<IfModule mod_deflate.c>SetOutputFilter DEFLATEAddOutputFilterByType DEFLATE text/plainAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/phpAddOutputFilterByType DEFLATE text/xmlAddOutputFilterByType DEFLATE text/cssAddOutputFilterByType DEFLATE text/javascriptAddOutputFilter DEFLATE js cssAddOutputFilterByType DEFLATE application/xhtml+xmlAddOutputFilterByType DEFLATE application/xmlAddOutputFilterByType DEFLATE application/rss+xmlAddOutputFilterByType DEFLATE application/atom_xmlAddOutputFilterByType DEFLATE application/x-javascriptAddOutputFilterByType DEFLATE application/x-httpd-phpAddOutputFilterByType DEFLATE image/svg+xmlAddOutputFilterByType DEFLATE image/gif image/png image/jpe image/swf image/jpeg image/bmp# Don’t compress images and other #排除不需要壓縮的檔案BrowserMatch ^Mozilla/4 gzip-only-text/htmlBrowserMatch ^Mozilla/4\.0[678] no-gzipBrowserMatch \bMSIE !no-gzip !gzip-only-text/htmlSetEnvIfNoCase Request_URI .(?:html|htm)$ no-gzip dont-varySetEnvIfNoCase #SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-varySetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-varySetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary</IfModule>
4.重啟apache服務端
二、Web伺服器處理
HTTP壓縮的過程如下:
Web伺服器接收到瀏覽器的HTTP請求後,檢查瀏覽器是否支援HTTP壓縮(Accept-Encoding 資訊);
如果瀏覽器支援HTTP壓縮,Web伺服器檢查請求檔案的尾碼名;
如果請求檔案是HTML、CSS等靜態檔案,Web伺服器到壓縮緩衝目錄中檢查是否已經存在請求檔案的最新壓縮檔;
如果請求檔案的壓縮檔不存在,Web伺服器向瀏覽器返回未壓縮的請求檔案,並在壓縮緩衝目錄中存放請求檔案的壓縮檔;
如果請求檔案的最新壓縮檔已經存在,則直接返回請求檔案的壓縮檔;
如果請求檔案是動態檔案,Web伺服器動態壓縮內容並返回瀏覽器,壓縮內容不存放到壓縮緩衝目錄中。
四、mod_gzip 和mod_deflate的主要區別是什嗎?(來自互連網)
首先一個區別是安裝它們的Apache Web伺服器版本的差異。Apache 1.x系列沒有內建網頁壓縮技術,所以才去用額外的第三方mod_gzip 模組來執行壓縮。而Apache 2.x官方在開發的時候,就把網頁壓縮考慮進去,內建了mod_deflate 這個模組,用以取代mod_gzip。雖然兩者都是使用的Gzip壓縮演算法,它們的運作原理是類似的。 第二個區別是壓縮品質。mod_deflate 壓縮速度略快而mod_gzip 的壓縮比略高。一般預設情況下,mod_gzip 會比mod_deflate 多出4%~6%的壓縮量。 那麼,為什麼使用mod_deflate?第三個區別是對伺服器資源的佔用。 一般來說mod_gzip 對伺服器CPU的佔用要高一些。mod_deflate 是專門為確保伺服器的效能而使用的一個壓縮模組,mod_deflate 需要較少的資源來壓縮檔。這意味著在高流量的伺服器,使用mod_deflate 可能會比mod_gzip 載入速度更快。