HTTP協議上的GZIP編碼是一種用來改進WEB應用程序性能的技術。大流量的WEB站點經常使用GZIP壓縮技術來讓用戶感覺更快的速度。javascript
這通常是指WWW服務器中安裝的一個功能,當有人來訪問這個服務器中的網站時,服務器中的這個功能就將網頁內容壓縮後傳輸到來訪的電腦瀏覽器中顯示出來.通常對純文本內容可壓縮到原大小的40%.這樣傳輸就快了,效果就是你點擊網址後會很快的顯示出來.固然這也會增長服務器的負載. 通常服務器中都安裝有這個功能模塊的。php
減小文件大小有兩個明顯的好處,一是能夠減小存儲空間,二是經過網絡傳輸文件時,能夠減小傳輸的時間。gzip 是在 Linux 系統中常常使用的一個對文件進行壓縮和解壓縮的命令,既方便又好用。css
Web服務器接收到瀏覽器的HTTP請求後,檢查瀏覽器是否支持HTTP壓縮(Accept-Encoding 信息);html
若是瀏覽器支持HTTP壓縮,Web服務器檢查請求文件的後綴名;java
若是請求文件是HTML、CSS等靜態文件,Web服務器到壓縮緩衝目錄中檢查是否已經存在請求文件的最新壓縮文件;apache
若是請求文件的壓縮文件不存在,Web服務器向瀏覽器返回未壓縮的請求文件,並在壓縮緩衝目錄中存放請求文件的壓縮文件;json
若是請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;瀏覽器
若是請求文件是動態文件,Web服務器動態壓縮內容並返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。緩存
打開 http.conf
文件, 作以下修改:服務器
開啓相關模塊
去掉 #LoadModule headers_module modules/mod_headers.so 前面的註釋# 去掉 #LoadModule deflate_module modules/mod_deflate.so 前面的註釋# 去掉 #LoadModule filter_module modules/mod_filter.so 前面的註釋#
在http.conf末尾,添加配置
<IfModule mod_deflate.c> DeflateCompressionLevel 6 SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/json #設置不對後綴gif,jpg,jpeg,png的圖片文件進行壓縮 SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary #同上,就是設置不對exe,tgz,gz。。。的文件進行壓縮 SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary #設置對文件是文本的內容進行壓縮,例如text/html text/css text/plain等 AddOutputFilterByType DEFLATE text/* #這段代碼你只須要了解application/javascript application/x-javascript這段就能夠了,這段的意思是對javascript文件進行壓縮 AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript #這段是告訴apache對php類型的文件進行壓縮 AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp # Netscape 4.x 有一些問題,因此只壓縮文件類型是text/html的 BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 有更多的問題,因此不開啓壓縮 BrowserMatch ^Mozilla/4.0[678] no-gzip # IE瀏覽器會假裝成 Netscape ,可是事實上它沒有問題 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html </IfModule>
按1-2次 ctrl+f5
, 以強制刷新的方式瀏覽頁面,而後在network面板查看靜態資源的響應頭,若包含content-encoding: gzip
則表示通過gzip