公司動(dòng)態(tài) · 行業(yè)動(dòng)態(tài) · 技術(shù)交流

技術(shù)交流

什么是gzip 怎么做gzip壓縮

發(fā)布時(shí)間:2017-06-14 瀏覽:5219次

網(wǎng)站建設(shè)或者運(yùn)營中,特別是在網(wǎng)站優(yōu)化中,我們會(huì)遇到一個(gè)詞:“gzip壓縮”。那么什么是gzip呢?怎么做gzip壓縮呢?

gzip是GNU zip的縮寫,它是一個(gè)GNU自由軟件的文件壓縮程序,也經(jīng)常用來表示gzip這種文件格式。壓縮效率非常高,通??梢赃_(dá)到70%的壓縮率,一般的網(wǎng)頁體積是40KB左右,用gzip壓縮之后,只剩下12KB了。gzip壓縮采用通用的壓縮算法壓縮HTML、JavaScript、CSS等靜態(tài)文件和asp、aspx、php、jsp等動(dòng)態(tài)文件。是不是很不錯(cuò)呢?我們通常所做的文件打包也是壓縮的一種。為什么不可以將我們的網(wǎng)頁“打包”發(fā)給瀏覽器來讀取呢?gzip的優(yōu)點(diǎn)是:

可以節(jié)省帶寬資源;
加快網(wǎng)站加載速度。

節(jié)省帶寬,對(duì)于大部分的網(wǎng)站來說,都沒有什么關(guān)系,因?yàn)楹芏嗟木W(wǎng)站都是小網(wǎng)站,特別在南京網(wǎng)站市場。節(jié)省帶寬沒有什么特殊的用處。因?yàn)榫W(wǎng)站的流量本來就不大。

加快網(wǎng)站加載速度這點(diǎn)對(duì)大部分的網(wǎng)站來說就很有必要了,為什么呢?因?yàn)榫W(wǎng)站打開速度快慢和網(wǎng)站優(yōu)化有很大的關(guān)系,也符合網(wǎng)站用戶體驗(yàn)度,打開快的網(wǎng)站,瀏覽者肯定很欣賞。你不可能喜歡一個(gè)打開要8秒鐘的網(wǎng)站吧?對(duì)于一些網(wǎng)站來說,打開速度慢一秒,至少會(huì)減少1%的營業(yè)額。所以,加快網(wǎng)站加載速度是網(wǎng)站gzip的最大用處。

HTTP壓縮工作原理
gzip是HTML壓縮算法的一種,HTTP壓縮是在Web服務(wù)器和瀏覽器間傳輸壓縮文本內(nèi)容的方法。HTTP壓縮工作原理是:
Web服務(wù)器接收到瀏覽器的HTTP請(qǐng)求后,檢查瀏覽器是否支持HTTP壓縮;
如果瀏覽器支持HTTP壓縮,Web服務(wù)器檢查請(qǐng)求文件的后綴名;
如果請(qǐng)求文件是HTML、CSS等靜態(tài)文件,Web服務(wù)器到壓縮緩沖目錄中檢查是否已經(jīng)存在請(qǐng)求文件的最新壓縮文件;
如果請(qǐng)求文件的壓縮文件不存在,Web服務(wù)器向?yàn)g覽器返回未壓縮的請(qǐng)求文件,并在壓縮緩沖目錄中存放請(qǐng)求文件的壓縮文件;
如果請(qǐng)求文件的最新壓縮文件已經(jīng)存在,則直接返回請(qǐng)求文件的壓縮文件;
如果請(qǐng)求文件是ASPX等動(dòng)態(tài)文件,Web服務(wù)器動(dòng)態(tài)壓縮內(nèi)容并返回瀏覽器,壓縮內(nèi)容不存放到壓縮緩存目錄中。

怎么做gzip壓縮呢?大致有:在Contol Pannel開啟gzip、開啟http服務(wù)器gzip、利用php本身的gzip。

IE6和火狐都支持客戶端gzip,在網(wǎng)頁傳輸之前,先使用gzip壓縮再傳輸給客戶端,客戶端接收之后由瀏覽器解壓顯示。

IIS6已經(jīng)內(nèi)建了gzip壓縮的支持。在IIS6上做gzip壓縮的方法是:
如果你需要壓縮靜態(tài)文件,可以先在硬盤上新建一個(gè)目錄,并給它“IUSR_機(jī)器名”這個(gè)用戶設(shè)置寫權(quán)限。如果壓縮動(dòng)態(tài)文件就可以不用這樣的,因?yàn)樗捻撁媸敲看味紕?dòng)態(tài)生成的(頁面動(dòng)態(tài)生成),壓縮完就放棄。然后在IIS管理器中,“網(wǎng)站”上面右鍵-屬性,不是下面的某個(gè)站點(diǎn),而是整個(gè)網(wǎng)站。進(jìn)入“服務(wù)”標(biāo)簽,選上啟用動(dòng)態(tài)內(nèi)容壓縮,靜態(tài)內(nèi)容壓縮。給gzip的臨時(shí)目錄空間不要太大了200MB左右就夠了.

然后選中網(wǎng)站下面那個(gè)服務(wù)器擴(kuò)展,新建一個(gè)服務(wù)器擴(kuò)展??梢杂萌魏文阆胗玫拿?,下面的添加文件的路徑是:

c:\windows\system32\inetsrv\gzip.dll,然后啟用這個(gè)擴(kuò)展。

這時(shí)候靜態(tài)內(nèi)容是可以壓縮的,但是對(duì)于動(dòng)態(tài)內(nèi)容,aspx文件卻不在壓縮范圍內(nèi)。我們只能去修改它的配置文件了。

在c:\windows\system32\inetsrv\下面有個(gè)MetaBase.xml文件,可以用記事本打開,找到IIsCompressionScheme,有三個(gè)相同名字的段,

分別是

 

前兩段有基本相同的參數(shù),在這兩段的參數(shù)HcScriptFileExtensions下面都加上一行aspx,如果你有其它的動(dòng)態(tài)程序要壓縮,也加在這里。HcDynamicCompressionLevel改成9,9是性價(jià)比最高的一個(gè)。

至此,怎么做gzip壓縮的過程我們就都實(shí)現(xiàn)了,需要注意的是:網(wǎng)頁啟用了gzip壓縮后網(wǎng)站打開速度通??赡懿粫?huì)有太明顯的感覺(相對(duì)于瀏覽者),可以用一些特定的來檢查你的網(wǎng)頁是否壓縮過了,以及壓縮比和加快的速度。
恒網(wǎng)-南京網(wǎng)站建設(shè)

點(diǎn)