//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);
}
}
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
上面這個是壓縮前的code
下面這個是壓縮後的htm
來比較一下.blog
壓縮前ip
第一個請求:3021字節,用時0.033get
第二個請求: 431字節,用時0.010
第三個請求: 516字節,用時0.008
壓縮後
第一個請求:1239字節,用時0.025
第二個請求: 556字節,用時0.008
第三個請求: 587字節,用時0.008
第一個請求壓縮很明顯,達到了原來的三分之一左右
第二個請求,第三個請求壓縮前反而比壓縮後小.這是爲何呢.
呵.那是第一個請求發送的數據原本就很大,
第二個和第三個請求發送的就只有幾個字節,
還要加上瀏覽器的一些信息,可能反而大了吧
個人理解是這樣的.還請高手多多指教