时间:2021-05-19
复制代码 代码如下:
using System.IO;
using System.IO.Compression;
using System.Web;
using System.Web.Mvc;
public class CompressAttribute : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
//如果出现错误,则不进行压缩,否则页面会出现乱码,而不是报错的黄页
if (filterContext.Exception != null)
return;
HttpResponseBase Response = filterContext.HttpContext.Response as HttpResponseBase;
//判断IIS或者其他承载设备是是否启用了GZip或DeflateStream
if (Response.Filter is GZipStream || Response.Filter is DeflateStream)
return;
//开始进入压缩环节
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");
}
}
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用gzip压缩可以减少数据传输大小,加快网页加载速度。很多大站都开启了gzip压缩,不过也有很多网站并没有开启gzip压缩,上次看了一篇文章说开启gzip压缩
开启gzip配置#开启gzipgzipon;#启用gzip压缩的最小文件,小于设置值的文件将不会压缩gzip_min_length1k;#gzip压缩级别,1-
1.使用压缩与不使用压缩的HTTP输出比较2.开启gzip利用apachemod_deflatemodule开启gzip开启方法:sudoa2enmoddefl
1.gzip压缩文件参数gzipon;--开启gzip功能gzip_comp_level4--压缩的级别,级别越高所占的cpu越高,压缩时间越长.默认值从1到9
简介Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度。Gzip压缩效率非常高,通常可以达到70%的压缩