欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
關(guān)于web壓縮,gzip等

全面解析Linux空間用Gzip對網(wǎng)頁(yè)內容進(jìn)行壓縮

2010-04-28 14:28:14 來(lái)源:風(fēng)的翅膀與chibl.com 【 評論:1 我要投稿 收藏本文 分享至微博

站長(cháng)交易(http://jy.chinaz.com)幫站長(cháng)賺錢(qián) 虛擬主機評測+IDC導航=IDC123.COM

使用mod_gzip 和 mod_deflate對網(wǎng)頁(yè)內容進(jìn)行壓縮

Gzip是一種流行的文件壓縮算法,現在的應用十分廣泛,尤其是在Linux平臺。當應用Gzip壓縮到一個(gè)純文本文件時(shí),效果是非常明顯的,大約可以減少70%以上的文件大小。這取決于文件中的內容。

利用Apache中的Gzip模塊,我們可以使用Gzip壓縮算法來(lái)對Apache服務(wù)器發(fā)布的網(wǎng)頁(yè)內容進(jìn)行壓縮后再傳輸到客戶(hù)端瀏覽器。這樣經(jīng)過(guò)壓縮后實(shí)際上降低了網(wǎng)絡(luò )傳輸的字節數,最明顯的好處就是可以加快網(wǎng)頁(yè)加載的速度。

網(wǎng)頁(yè)加載速度加快的好處不言而喻,除了節省流量,改善用戶(hù)的瀏覽體驗外,另一個(gè)潛在的好處是Gzip與搜索引擎的抓取工具有著(zhù)更好的關(guān)系。例如Google就可以通過(guò)直接讀取gzip文件來(lái)比普通手工抓取更快地檢索網(wǎng)頁(yè)。在Google網(wǎng)站管理員工具(Google Webmaster Tools)中你可以看到,sitemap.xml.gz 是直接作為Sitemap被提交的。

而這些好處并不僅僅限于靜態(tài)內容,PHP動(dòng)態(tài)頁(yè)面和其他動(dòng)態(tài)生成的內容均可以通過(guò)使用Apache壓縮模塊壓縮,加上其他的性能調整機制和相應的服務(wù)器端緩存規則,這可以大大提高網(wǎng)站的性能。

因此,對于部署在Linux服務(wù)器上的PHP程序,在服務(wù)器支持的情況下,我們建議你開(kāi)啟使用Gzip Web壓縮。

二、 Gzip Web壓縮工作原理

Web服務(wù)器處理HTTP壓縮的過(guò)程如下:

1. Web服務(wù)器接收到瀏覽器的HTTP請求后,檢查瀏覽器是否支持HTTP壓縮(Accept-Encoding 信息);

2. 如果瀏覽器支持HTTP壓縮,Web服務(wù)器檢查請求文件的后綴名;

3. 如果請求文件是HTML、CSS等靜態(tài)文件,Web服務(wù)器到壓縮緩沖目錄中檢查是否已經(jīng)存在請求文件的最新壓縮文件;

4. 如果請求文件的壓縮文件不存在,Web服務(wù)器向瀏覽器返回未壓縮的請求文件,并在壓縮緩沖目錄中存放請求文件的壓縮文件;

5. 如果請求文件的最新壓縮文件已經(jīng)存在,則直接返回請求文件的壓縮文件;

6. 如果請求文件是動(dòng)態(tài)文件,Web服務(wù)器動(dòng)態(tài)壓縮內容并返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。

下面是兩個(gè)演示圖:

未使用Gzip:

開(kāi)啟使用Gzip后:

、讓我們開(kāi)始吧!

Apache上利用Gzip壓縮算法進(jìn)行壓縮的模塊有兩種:mod_gzip 和mod_deflate。要使用Gzip Web壓縮,請首先確定你的服務(wù)器開(kāi)啟了對這兩個(gè)組件之一的支持。在Linux服務(wù)器上,現在已經(jīng)有越來(lái)越多的空間商開(kāi)放了對它們的支持,有的甚至是同時(shí)支持這兩個(gè)模塊的。例如目前Godaddy、Bluehost及DreamHosts等空間商的服務(wù)器都已同時(shí)支持mod_gzip 和mod_deflate。

雖然使用Gzip同時(shí)也需要客戶(hù)端瀏覽器的支持,不過(guò)不用擔心,目前大部分瀏覽器都已經(jīng)支持Gzip了,如IE、Mozilla Firefox、Opera、Chrome等。

通過(guò)查看HTTP頭,我們可以快速判斷使用的客戶(hù)端瀏覽器是否支持接受gzip壓縮。

若發(fā)送的HTTP頭中出現以下信息,則表明你的瀏覽器支持接受相應的gzip壓縮:

Accept-Encoding: gzip     支持mod_gzip
Accept-Encoding: deflate     支持mod_deflate
Accept-Encoding: gzip,deflate    同時(shí)支持mod_gzip 和mod_deflate

如果服務(wù)器開(kāi)啟了對Gzip組件的支持,那么我們就可以在http.conf或.htaccess里面進(jìn)行定制,下面是一個(gè).htaccess配置的簡(jiǎn)單實(shí)例:

以下為引用的內容:

# mod_gzip:
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

 

以下為引用的內容:

# mod_deflate:
<ifmodule mod_deflate.c>
DeflateCompressionLevel 6 #壓縮率, 6是建議值.
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE image/svg+xml
</ifmodule>

 

里面的文件MIME類(lèi)型可以根據自己情況添加,至于PDF 、圖片、音樂(lè )文檔之類(lèi)的這些本身都已經(jīng)高度壓縮格式,重復壓縮的作用不大,反而可能會(huì )因為增加CPU的處理時(shí)間及瀏覽器的渲染問(wèn)題而降低性能。所以就沒(méi)必要再通過(guò)Gzip壓縮。

通過(guò)以上設置后再查看返回的HTTP頭,出現以下信息則表明返回的數據已經(jīng)過(guò)壓縮。即網(wǎng)站程序所配置的Gzip壓縮已生效。

Content-Encoding: gzip

注:不管使用mod_gzip 還是mod_deflate,此處返回的信息都一樣。因為它們都是實(shí)現的gzip壓縮方式。

除此之外,還可以通過(guò)一些在線(xiàn)檢測工具(如:http://www.whatsmyip.org/http_compression/)來(lái)檢測你的網(wǎng)站內容是否已經(jīng)過(guò)Gzip壓縮。

四、mod_gzip 和mod_deflate的主要區別是什么?使用哪個(gè)更好呢?

首先一個(gè)區別是安裝它們的Apache Web服務(wù)器版本的差異。Apache 1.x系列沒(méi)有內建網(wǎng)頁(yè)壓縮技術(shù),所以才去用額外的第三方mod_gzip 模塊來(lái)執行壓縮。而Apache 2.x官方在開(kāi)發(fā)的時(shí)候,就把網(wǎng)頁(yè)壓縮考慮進(jìn)去,內建了mod_deflate 這個(gè)模塊,用以取代mod_gzip。雖然兩者都是使用的Gzip壓縮算法,它們的運作原理是類(lèi)似的。

第二個(gè)區別是壓縮質(zhì)量。mod_deflate 壓縮速度略快而mod_gzip 的壓縮比略高。一般默認情況下,mod_gzip 會(huì )比mod_deflate 多出4%~6%的壓縮量。

那么,為什么使用mod_deflate?第三個(gè)區別是對服務(wù)器資源的占用。一般來(lái)說(shuō)mod_gzip 對服務(wù)器CPU的占用要高一些。mod_deflate 是專(zhuān)門(mén)為確保服務(wù)器的性能而使用的一個(gè)壓縮模塊,mod_deflate 需要較少的資源來(lái)壓縮文件。這意味著(zhù)在高流量的服務(wù)器,使用mod_deflate 可能會(huì )比mod_gzip 加載速度更快。

不太明白?簡(jiǎn)而言之,如果你的網(wǎng)站,每天不到1000獨立訪(fǎng)客,想要加快網(wǎng)頁(yè)的加載速度,就使用mod_gzip。雖然會(huì )額外耗費一些服務(wù)器資源,但也是值得的。如果你的網(wǎng)站每天超過(guò)1000獨立訪(fǎng)客,并且使用的是共享的虛擬主機,所分配系統資源有限的話(huà),使用mod_deflate 將會(huì )是更好的選擇。

另外,從Apache 2.0.45開(kāi)始,mod_deflate 可使用DeflateCompressionLevel 指令來(lái)設置壓縮級別。該指令的值可為1至(壓縮速度最快,最低的壓縮質(zhì)量)9(最慢的壓縮速度,壓縮率最高)之間的整數,其默認值為6(壓縮速度和壓縮質(zhì)量較為平衡的值)。這個(gè)簡(jiǎn)單的變化更是使得mod_deflate 可以輕松媲美mod_gzip 的壓縮。

P.S. 對于沒(méi)有啟用以上兩種Gzip模塊的虛擬空間,還可以退而求其次使用php的zlib函數庫(同樣需要查看服務(wù)器是否支持)來(lái)壓縮文件,只是這種方法使用起來(lái)比較麻煩,而且一般會(huì )比較耗費服務(wù)器資源,請根據情況慎重使用。
 

Linux 空間不支持mod_gzip、mod_deflate模塊

Linux 空間不支持mod_gzip、mod_deflate模塊,若想通過(guò)GZIP壓縮網(wǎng)頁(yè)內容,可以考慮兩種方式,開(kāi)啟zlib.output_compression或者通過(guò)ob_gzhandler編碼的方式。

zlib.output_compression是在對網(wǎng)頁(yè)內容壓縮的同時(shí)發(fā)送數據至客戶(hù)端,ob_gzhandler是等待網(wǎng)頁(yè)內容壓縮完畢后才進(jìn)行發(fā)送,相比之下前者效率更高,但需要注意的是,兩者不能同時(shí)使用,只能選其一,否則將出現錯誤。

下文僅針對GoDaddy Deluxe Hosting – Linux 空間,對兩者的實(shí)現方式做簡(jiǎn)單描述。

在默認情況下,zlib.output_compression是關(guān)閉的,如需開(kāi)啟需編輯php5.ini文件,加入以下內容:

 

以下為引用的內容:
zlib.output_compression = On
zlib.output_compression_level = 6

 

然后將php5.ini上傳到FTP根目錄下,剩下的事請就是等待它生效,這可能需要一段時(shí)間,可以通過(guò)phpinfo()函數檢測結果:

 

以下為引用的內容:
Directive                       Local Value   Master Value
zlib.output_compression         On            On
zlib.output_compression_level   6             6

 

當zlib.output_compression的Local Value和MasterValue的值同為On時(shí),表示已經(jīng)生效,這時(shí)候訪(fǎng)問(wèn)的PHP頁(yè)面(包括偽靜態(tài)頁(yè)面)已經(jīng)GZIP壓縮了,通過(guò)Firebug或者在線(xiàn)網(wǎng)頁(yè)GZIP壓縮檢測工具可檢測到壓縮的效果。

如果需要使用ob_gzhandler,則需關(guān)閉zlib.output_compression,把php5.ini文件內容更改為:

 

以下為引用的內容:
zlib.output_compression = Off
zlib.output_compression_level = -1

 

ob_gzhandler是GoDaddy官網(wǎng)推薦的用法,通過(guò)在PHP文件中插入相關(guān)代碼實(shí)現GZIP壓縮,以下是GoDaddy幫助中心所提到的:

 

GZIP Compression

Smaller pages load faster, regardless of your Internet connection speed. You can make your pages smaller by compressing them with GZIP. For more information about GZIP and our hosting, see Compressing Web Pages for Faster Load Times.

 

《Compressing Web Pages for Faster Load Times》文中提到,將以下PHP代碼加入到PHP文件頂部,即可實(shí)現GZIP壓縮。

 

以下為引用的內容:
<?php
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
ob_start("ob_gzhandler");
else
ob_start();
?>

 

不管是zlib.output_compression還是ob_gzhandler,都僅能對PHP文件進(jìn)行GZIP壓縮,對于HTML、CSS、JS等靜態(tài)文件只能通過(guò)調用PHP的方式實(shí)現。

最后想說(shuō)的是,現在主流的瀏覽器默認使用的是HTTP1.1協(xié)議,基本都支持GZIP壓縮,對于IE而言,假如你沒(méi)有選中其菜單欄工具-》Internet 選項-》高級-》HTTP 1.1 設置-》使用 HTTP 1.1,那么,你將感受不到網(wǎng)頁(yè)壓縮后的速度提升所帶來(lái)的快感!

注明:文章mod_gzip 和mod_deflate壓縮方法的內容來(lái)自風(fēng)的翅膀;zlib.output_compression與ob_gzhandler壓縮方法來(lái)自chibl.com

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
PHP教程 58 - 靜態(tài)頁(yè)面優(yōu)化(1)
php啟用zlib壓縮文件的配置方法
IIS或Apache啟用GZIP壓縮優(yōu)化網(wǎng)站
zlib解壓縮gzip
HTTP請求之gzip壓縮知多少
PHP 網(wǎng)站優(yōu)化
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久