zoukankan      html  css  js  c++  java
  • Global.asax.cs中相关方法

            protected void Session_Start(object sender, EventArgs e)
            {
    #if DEBUG
                //debug 登陆默认设置
    #endif
            }
    
            protected void Application_BeginRequest(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_End(object sender, EventArgs e)
            {
                Brotli.Brolib.FreeLibrary();
            }
    
            protected void Application_Error(object sender, EventArgs e)
            {
                //错误日志记录
            }
    
           protected void AddCompressSupport(HttpContext context)
            {
                Boolean doCompress = true;
                String compressMode = System.Web.Configuration.WebConfigurationManager.AppSettings["CompressMode"];
                if (!String.IsNullOrEmpty(compressMode))
                {
                    Boolean.TryParse(compressMode, out doCompress);
                }
                //don't use compress for filehandler
                if (context.Request.Url.AbsoluteUri.Contains("FileHandler.ashx")) return;
                if (context.Response.ContentType.IndexOf("json", StringComparison.CurrentCultureIgnoreCase) >= 0
                    || (context.Handler is System.Web.SessionState.IRequiresSessionState)
                    )
                {
                    context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                    context.Response.Cache.SetMaxAge(TimeSpan.Zero);
                    context.Response.Cache.SetExpires(new DateTime(2000, 1, 1));
                }
    
                if (doCompress)
                {
                    var app = context.ApplicationInstance;
                    String acceptEncodings = app.Request.Headers.Get("Accept-Encoding");
    
                    if (!String.IsNullOrEmpty(acceptEncodings))
                    {
                        System.IO.Stream baseStream = app.Response.Filter;
                        acceptEncodings = acceptEncodings.ToLower();
    
                        if (acceptEncodings.Contains("br") || acceptEncodings.Contains("brotli"))
                        {
                            app.Response.Filter = new Brotli.BrotliStream(baseStream, System.IO.Compression.CompressionMode.Compress);
                            app.Response.AppendHeader("Content-Encoding", "br");
                        }
                        else
                        if (acceptEncodings.Contains("deflate"))
                        {
                            app.Response.Filter = new System.IO.Compression.DeflateStream(baseStream, System.IO.Compression.CompressionMode.Compress);
                            app.Response.AppendHeader("Content-Encoding", "deflate");
                        }
                        else if (acceptEncodings.Contains("gzip"))
                        {
                            app.Response.Filter = new System.IO.Compression.GZipStream(baseStream, System.IO.Compression.CompressionMode.Compress);
                            app.Response.AppendHeader("Content-Encoding", "gzip");
                        }
    
                    }
                }
            }
    
            protected void Application_PostAcquireRequestState(object sender, EventArgs e)
            {
                //压缩Response请求
                AddCompressSupport(Context);
            }    
    

      

  • 相关阅读:
    Java参数传递方式
    C++成员函数的 重载、隐藏、覆盖分析(转)
    回调函数 (一)
    Java之String 专题二
    从10亿个浮点数中找出最大的1万个
    【onclick事件】【改变 HTML 内容innerHTML】【图片替换】【改变标签的css】【判断输入是否是数字】
    【页面加载】【九九乘法表】【document.write的功能_】【<script>直接显示数组】【声明新变量】
    Windows10 环境下安装 ElasticSearch
    数据包和数据报有何区别?
    NIO 通道和缓冲区
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/7576397.html
Copyright © 2011-2022 走看看