1. 程式人生 > >WEB效能優化之GZIP壓縮

WEB效能優化之GZIP壓縮

GZIP壓縮是一個經常被用到的WEB效能優化的技巧,它主要是對頁面程式碼,CSS,Javascript,PHP等檔案進行壓縮,而且在壓縮的前後,檔案的大小會有明顯的改變,從而達到網站訪問加速的目的。

接下來我們就介紹一下什麼是GZIP壓縮,以及GZIP壓縮是個什麼概念。

GZIP網頁壓縮,是一種WEB伺服器與瀏覽器之間共同遵守的協議,也就是說WEB伺服器和瀏覽器都必須支援該技術才能實現GZIP壓縮,而當下主流的瀏覽器都是支援GZIP壓縮,包括IE6、IE7、IE8、IE9、FireFox、谷歌瀏覽器、Opera等,而常見的WEB伺服器通常有Apache和IIS兩種。

GZIP最早由Jean-loup Gailly和Mark Adler建立,用於UNIX系統的檔案壓縮。我們在Linux中經常會用到字尾為.gz的檔案,它們就是GZIP格式的。目前,GZIP已經成為Internet上使用非常普遍的一種資料壓縮格式,或者說一種檔案格式。

下面介紹一下GZIP壓縮時,WEB伺服器與瀏覽器之間的協商過程如下:

1、首先瀏覽器請求某個URL地址,並在請求的開始部分頭(head) 設定屬性accept-encoding值為gzip、deflate,表明瀏覽器支援gzip和deflate這兩種壓縮方式(事實上deflate也是使用GZIP壓縮協議,在之後的內容之我們會介紹二者之間的區別);

2、WEB伺服器接收到請求後判斷瀏覽器是否支援GZIP壓縮,如果支援就傳送壓縮後的響應內容,否則傳送不經過壓縮的內容;

3、瀏覽器獲取響應內容後,判斷內容是否被壓縮,如果是壓縮檔案則解壓縮,然後顯示響應頁面的內容。

HTTP協議上的GZIP編碼是一種用來改進WEB應用程式效能的技術。大流量的WEB站點常常使用GZIP壓縮技術來讓使用者感受更快的速度。這一般是指 WWW伺服器中安裝的一個功能,當有人來訪問這個伺服器的網站時,伺服器的這個功能就將網頁內容壓縮後傳輸到來訪的電腦瀏覽器中顯示出來。一般對純文 內容可壓縮到原大小的40%,這樣以來檔案的體積就減小了很多,傳輸速度也就快了。效果就是你點選網址後會很快的顯示出來。當然這也會增加伺服器的負載,一般的伺服器中都會安裝有這個功能模組。

GZIP壓縮的比率往往在3倍到10倍,也就是本來90k大小的頁面,採用壓縮後實際傳輸的內容大小隻有28至30K大小,這可以大大節省伺服器的網路頻寬,同時如果應用程式的響應足夠快時,網站的速度瓶頸就轉到了網路的傳輸速度上,因此內容壓縮後就可以大大的提升頁面的瀏覽速度。

在實際應用中,我們並不需要對網站所有檔案都進行壓縮,只需要對靜態檔案進行壓縮就可以了,比如Javascript、CSS及和HTML檔案。對其他檔案進行壓縮並不會給WEB效能帶來太多的改觀,並且對網站開啟GZIP功能是需要犧牲部分伺服器效能的。而且對於FLASH檔案來說開啟GZIP壓縮之後還會影響其效果。[喝小酒的網摘]http://blog.hehehehehe.cn/a/11471.htm
原文:http://www.52maomao.info/optimization-of-web-performance-of-gzip-compression.html[喝小酒的網摘]http://blog.hehehehehe.cn/a/11471.htm

相關推薦

WEB效能優化GZIP壓縮

GZIP壓縮是一個經常被用到的WEB效能優化的技巧,它主要是對頁面程式碼,CSS,Javascript,PHP等檔案進行壓縮,而且在壓縮的前後,檔案的大小會有明顯的改變,從而達到網站訪問加速的目的。 接下來我們就介紹一下什麼是GZIP壓縮,以及GZIP壓縮是個什麼概念。 GZIP網頁壓縮,是一種WEB伺

web效能優化--用gzip壓縮資原始檔

一、gzip壓縮技術 gzip(GNU- ZIP)是一種壓縮技術。經過gzip壓縮後頁面大小可以變為原來的30%甚至更小,這樣,使用者瀏覽頁面的時候速度會快得多。gzip的壓縮頁面需要瀏覽器和伺服器雙方都支援,實際上就是伺服器端壓縮,傳到瀏覽器後瀏覽器解壓並解

網站效能優化GZIP壓縮功能優缺點以及配置方法

開啟GZIP壓縮主要解決靜態資源過多過大,導致客戶端載入資源時間較長的問題,但同時會增加伺服器計算量。所以當頻寬壓力過高而伺服器效能較好時可以使用該方法提高使用者體驗。 1、TOMCAT配置如下

Android效能優化圖片壓縮優化

1 分類Android圖片壓縮結合多種壓縮方式,常用的有尺寸壓縮、質量壓縮、取樣率壓縮以及通過JNI呼叫libjpeg庫來進行壓縮。 參考此方法:Android-BitherCompress 備註:對於資源圖片直接使用:tiny壓縮 2 質量壓縮(1)原理:保持畫素的前提下改變圖片的位深及透明度,(即:通

Web效能優化CSS效能優化

非常感謝原文作者的分享,個人覺得非常有用.所以將原文進行翻譯,如果有錯誤,麻煩回覆指出 附上原文地址 什麼是高效的CSS?不同的選擇器對效能的影響如何?是花括號裡的屬性重要還是選擇器重要?. 我們在做優化網站的效能時,CSS的優化往往是

效能優化YUICompressor壓縮JS、CSS

效能一直是專案中比較重要的一點,尤其入口網站,對頁面的響應要求是很高的,從效能角度上來講,對於Web端的優化其中重要的一點無疑是JS、CSS檔案壓縮,圖片的融合,儘量減小檔案的大小,必免佔加載時佔用過多的頻寬。yuicompressor無疑是一個比較好的壓縮工具

Web效能優化動態合併JS/CSS檔案並快取客戶端

在Web開發過程中,會產生很多的js/css檔案,傳統的引用外部檔案的方式會產生多次的http請求,從而加重伺服器負擔且網頁載入緩慢,如何在一次請求中將多個檔案一次加載出來?接下來給大家介紹在ASP.NET中動態合併載入多個js或css檔案。 原理:減少請求伺服器的次數達

web效能優化事件節流

問題:滑鼠滾輪滾動一下,scroll事件觸發了12次document.addEventListener('scroll',function(){ console.log('hello') })事件節流背後的思想是指:某些程式碼不可以在沒有間斷的情況下連續重複執行,第一次呼叫

Web效能優化瘦身祕笈

Web 傳輸的內容當然是越少越好,最近一段時間的工作一直致力於 Web 效能優化,這是我近期使用過的一些縮減 Web 體積的手段 這些手段主要是為了減少 Web 傳輸的內容大小,只有乾貨 ## CSS ###

WEB效能優化(一):Resin下的 GZIP壓縮

最近在做前端的效能優化,發現一個頁面引入的js、css等外部資源過多的話,瀏覽器第一次請求的時候會下載很大的資源,那麼在使用者網路不好的情況下,頁面的載入速度會受很大的影響,因此要對WEB前端做各種優化。 在此第一步做的就是所有資源的壓縮,在開發環境編寫好的js和css檔案

前端頁面加載速度優化---NgnixGZIP壓縮

文件的 header 寫上 反向代理 實現 怎麽 加載 stat 前端 gzip on; #開啟Gzip gzip_static on;#是否開啟gzip靜態資源 #nginx對於靜態文件的處理模塊,該模塊可以讀取預先壓縮的gz文件,這樣可以減少每次請求進行gzip壓縮的

web前端效能優化CDN

什麼是CDN CDN (Content Delivery Network) 可直譯成內容分發網路。CDN的本質仍然李詠快取技術快取, 解決的是__如何將資料快速可靠從源站傳遞到使用者的問題__。使用者獲取資料時,不需要直接從源站獲取,通過CDN對於資料的分發,使用者可以從一個較優的伺服器獲取資料,從而達到快

java web專案效能優化五花八門

       最近是做了半年的專案到了最後測試準備上線了,流程走通後開始做一些效能測試,在此期間做了很多效能優化的工作,在此做下筆記,分享一下。交流一下,希望同道中人有新的東西歡迎補充。在此就不做太多的具體操作,主要還是從思路上出發。       效能優化主要從幾個方面著手

Apache啟用效能優化——啟用Gzip,JS壓縮

#Add deflate module for enable GZIP function LoadModule deflate_module     modules/mod_deflate.so #Add GZIP config filetype AddOutputFilt

web前端優化內容優化

找問題 有效 背景 pri 相關 下載 data url 並行 前端內容優化主要有以下幾條: 1.盡量減少http請求   (1)合並文件,把多個css文件合並在一起;   (2)css Sprites,把css相關的background元素進行背景圖絕對定位;   (3)

Web服務器配置Gzip壓縮提升網站性能

代理 odi modified 文件 imp 性能 implement avi pin 前言: HTTP協議上的GZIP編碼是一種用來改進WEB應用程序性能的技術。大流量的WEB站點常常使用GZIP壓縮技術來讓用戶感受更快的速度。這一般是指WWW服務器中安裝的一個功能,當有

菜鳥要做架構師——java效能優化for迴圈

完成同樣的功能,用不同的程式碼來實現,效能上可能會有比較大的差別,所以對於一些效能敏感的模組來說,對程式碼進行一定的優化還是很有必要的。今天就來說一下java程式碼優化的事情,今天主要聊一下對於for(while等同理)迴圈的優化。 作為三大結構之一的迴圈,在我們編寫程式碼的時候會經常用到。

效能優化記憶體優化

效能優化之記憶體優化 計算 APP 獲得的最大記憶體分配值 Runtime rt=Runtime.getRuntime(); long maxMemory=rt.maxMemory(); Log.i("maxMemory:",Long.toString(max

Sql Sever效能優化指定索引

背景:生產環境SQL語句查詢過慢(資料總量在350萬左右),日誌中心一直報警 解決過程:分析無果後,求助於公司的DBA,DBA分析後建議在語句中指定索引 解決:在SQL語句中指定索引,效果相當明顯,親測有效 優化前SQL: SELECT ROW_NUMBER() OVER ( ORDER BY

Android——效能優化SparseArray

相信大家都用過HashMap用來存放鍵值對,最近在專案中使用HashMap的時候發現,有時候 IDE 會提示我這裡的HashMap可以用SparseArray或者SparseIntArray等等來代替。 SparseArray(稀疏陣列).它是Android內部特有的api,標準的jdk是沒有這