對ashx請求用Gzip,Deflated壓縮

//GZIP壓縮html

複製代碼
// 查看請求頭部
string  acceptEncoding  =  context.Request.Headers[ " Accept-Encoding " ].ToString().ToUpperInvariant();
if  ( ! String.IsNullOrEmpty(acceptEncoding))
{
    
//若是頭部裏有包含"GZIP」,"DEFLATE",表示你瀏覽器支持GZIP,DEFLATE壓縮
    if (acceptEncoding.Contains("GZIP"))
    
{
        
//向輸出流頭部添加壓縮信息
        context.Response.AppendHeader("Content-encoding""gzip");
        context.Response.Filter 
= new GZipStream(context.Response.Filter, CompressionMode.Compress);
    }

    
else if (acceptEncoding.Contains("DEFLATE"))
    
{
        
//向輸出流頭部添加壓縮信息
        context.Response.AppendHeader("Content-encoding""deflate");
        context.Response.Filter 
= new DeflateStream(context.Response.Filter, CompressionMode.Compress);
    }

}
複製代碼

 

這樣每次context.Response.Write出支的數據就壓縮了瀏覽器

對效多的文本信息壓縮能夠壓縮到原來三分之一到四分之一的樣子post

若是發送的信息只有幾個字節就沒有必要了this

下面來看兩次壓縮的對比spa

GZIP前

上面這個是壓縮前的code

下面這個是壓縮後的htm

GZIP後

來比較一下.blog

壓縮前ip

第一個請求:3021字節,用時0.033get

第二個請求: 431字節,用時0.010

第三個請求: 516字節,用時0.008

壓縮後

第一個請求:1239字節,用時0.025

第二個請求: 556字節,用時0.008

第三個請求: 587字節,用時0.008

第一個請求壓縮很明顯,達到了原來的三分之一左右

第二個請求,第三個請求壓縮前反而比壓縮後小.這是爲何呢.

呵.那是第一個請求發送的數據原本就很大,

第二個和第三個請求發送的就只有幾個字節,

還要加上瀏覽器的一些信息,可能反而大了吧

個人理解是這樣的.還請高手多多指教

 

出處:http://www.cnblogs.com/liuju150/archive/2009/09/14/1566479.html

相關文章
相關標籤/搜索