《高性能網站建設指南》閱讀筆記_規則4- 壓縮組件
發布時間:2013-11-22 瀏覽:349打印字號:大中小
1.什么東西應該壓縮?
a.圖片、PDF等二進制文件不應該壓縮,因為它們已經壓縮過了
b.太小的文件不應壓縮。為小文件壓縮而耗費一些CPU時間不太值得。一般來說,應該只對1KB或2KB以上的文件進行壓縮。
2.瀏覽器端的支持
支持HTTP1.1的瀏覽器才能展現壓縮過的內容。如果你用的是APACHE服務器,則可以設置“瀏覽器白名單”,只對名單里的客戶端傳輸壓縮過的內容。
3.HTTP壓縮工作原理
Web服務器處理HTTP壓縮的工作原理如下:
Web服務器接收到瀏覽器的HTTP請求后,檢查瀏覽器是否支持HTTP壓縮;
如果瀏覽器支持HTTP壓縮,Web服務器檢查請求文件的后綴名;
如果請求文件是HTML、CSS等靜態文件,Web服務器到壓縮緩沖目錄中檢查是否已經存在請求文件的最新壓縮文件;
如果請求文件的壓縮文件不存在,Web服務器向瀏覽器返回未壓縮的請求文件,并在壓縮緩沖目錄中存放請求文件的壓縮文件;
如果請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;
如果請求文件是ASPX等動態文件,Web服務器動態壓縮內容并返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。
4. IIS 6.0中配置HTTPGzip壓縮的步驟: (本文以windows server 2003操作系統和IIS6.0服務器為例).win7不行
1、雙擊IIS服務器,右鍵點擊網站,點擊屬性,然后點擊服務,我們看到HTTP壓縮,然后在壓縮應用程序文件,壓縮靜態文件中打鉤,然后點擊確定,第一步就完成了
2、然后我們右鍵點擊web服務擴展,點擊添加一個新的web服務擴展,輸入擴展名,為了便于我們識別,我們可以起名為gzip(關于起名應該是隨意吧,小編沒有測試過),然后點擊添加,選擇C:\WINDOWS\system32\inetsrv\gzip.dll,然后點擊確定,擴展狀態為允許,否則gzip不能生效,一切完成,我們就可以點擊確定了.
3、接下來也是最重要的一步了,編輯IIS配置數據庫配置文件,在此操作之前,我們應該關閉IIS服務器才能進行接下來的操作,當然我們也可以不關閉IIS服務器,我們雙擊IIS服務器,右鍵點擊本地計算機,點擊屬性,在允許直接編輯配置數據庫上打鉤,那么我們不用關閉IIS就能直接配置服務器配置數據庫配置文件了
4、 我們找到C:\WINDOWS\system32\inetsrv下的MetaBase.xml文件,操作這個文件之前應該先復制一份,以免出現意外的情況.打開此文件,搜索deflate,找到HcDoStaticCompression原來為false改為true,HcDynamicCompressionLevel原來為0,改為9,HcFileExtensions里面就可以添加我們需要壓縮的后綴,這里添加的是靜態文件,一般壓縮html,js,css圖片不列為壓縮之列.動態的文件可不可以壓縮呢,當然可以HcScriptFileExtensions里面就是填寫要壓縮的動態文件.配置完這個,我們要來配置下面的gzip,他們兩個緊挨著的,配置方法相同.
5、一切步驟都就緒了,我們看看是否開啟成功了呢,那么怎樣查看呢,方法有兩種,可以使用火狐的firebug,還可以使用站長工具查看
注意事項:
配置數據庫配置文件之前應該關閉IIS,或者啟用允許直接編輯數據庫
在操作MetaBase.xml文件之前應該先備份一下,防止意外情況發生.
7、邊緣情形:
正常情況下,當瀏覽器直接與服務器通信時我只要按常規的配置即可。但是當瀏覽器通過代理來發送請求的時候就變得非常復雜。可能會產生邊緣情形(發送壓縮內容到不支持它的客戶端,忘記將壓縮內容生命為已經進行了gzip壓縮編碼等)這就需要考慮壓縮和緩存之間的平衡。