mvc開啟gzip壓縮示例分享
更新時間:2014年03月12日 11:11:24 作者:
這篇文章主要介紹了mvc開啟gzip壓縮示例,需要的朋友可以參考下
復(fù)制代碼 代碼如下:
using System.IO;
using System.IO.Compression;
using System.Web;
using System.Web.Mvc;
public class CompressAttribute : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
//如果出現(xiàn)錯誤,則不進行壓縮,否則頁面會出現(xiàn)亂碼,而不是報錯的黃頁
if (filterContext.Exception != null)
return;
HttpResponseBase Response = filterContext.HttpContext.Response as HttpResponseBase;
//判斷IIS或者其他承載設(shè)備是是否啟用了GZip或DeflateStream
if (Response.Filter is GZipStream || Response.Filter is DeflateStream)
return;
//開始進入壓縮環(huán)節(jié)
string AcceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
if (!string.IsNullOrEmpty(AcceptEncoding) && (AcceptEncoding.Contains("gzip") || AcceptEncoding.Contains("deflate")))
{
if (AcceptEncoding.Contains("gzip"))
{
Response.Filter = new GZipStream(Response.Filter, CompressionMode.Compress);
Response.Headers.Remove("Content-Encoding");
Response.AppendHeader("Content-Encoding", "gzip");
}
else
{
Response.Filter = new DeflateStream(Response.Filter, CompressionMode.Compress);
Response.Headers.Remove("Content-Encoding");
Response.AppendHeader("Content-Encoding", "deflate");
}
}
}
}
相關(guān)文章
Unity?UGUI的MaskableGraphic可遮罩圖形組件介紹使用
這篇文章主要為大家介紹了Unity?UGUI的MaskableGraphic可遮罩圖形組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07winform多線程組件BackgroundWorker使用
這篇文章介紹了winform多線程組件BackgroundWorker的使用方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05C#連接操作 MySQL 數(shù)據(jù)庫實例(使用官方驅(qū)動)
這篇文章主要介紹了C#連接操作 MySQL 數(shù)據(jù)庫實例(使用官方驅(qū)動),本文講解了C#中的Mysql連接方法和SQL操作方法,需要的朋友可以參考下2015-02-02C#實現(xiàn)日期格式轉(zhuǎn)換的公共方法類實例
這篇文章主要介紹了C#實現(xiàn)日期格式轉(zhuǎn)換的公共方法類,結(jié)合完整實例形式分析了C#針對各種常見日期格式的轉(zhuǎn)換方法,涉及C#字符串、日期、時間相關(guān)操作技巧,需要的朋友可以參考下2017-01-01