zoukankan      html  css  js  c++  java
  • .net 实现GZip页面压缩

            private void Application_BeginRequest(object sender, EventArgs e)
            {
                var context = HttpContext.Current;
                var request = context.Request;
                var response = context.Response;
                ResponseCompressionType compressionType = this.GetCompressionMode(request);
    
                if (compressionType != ResponseCompressionType.None)
                {
                    response.AppendHeader("Content-Encoding", compressionType.ToString().ToLower());
                    if (compressionType == ResponseCompressionType.GZip)
                    {
                        response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
                    }
                    else
                    {
                        response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
                    }
                }
            }
    
            private ResponseCompressionType GetCompressionMode(HttpRequest request)
            {
                string acceptEncoding = request.Headers["Accept-Encoding"];
                if (string.IsNullOrEmpty(acceptEncoding))
                {
                    return ResponseCompressionType.None;
                }
                acceptEncoding = acceptEncoding.ToUpperInvariant();
                if (acceptEncoding.Contains("GZIP"))
                {
                    return ResponseCompressionType.GZip;
                }
                else if (acceptEncoding.Contains("DEFLATE"))
                {
                    return ResponseCompressionType.Deflate;
                }
                else
                {
                    return ResponseCompressionType.None;
                }
            }
            private enum ResponseCompressionType { None, GZip, Deflate }
  • 相关阅读:
    VUE集成keycloak和Layui集成keycloak
    iscsi基本命令
    Linux网卡bond模式
    Unmount and run xfs_repair
    Centos7 升级过内核 boot分区无法挂载修
    Centos7 误删除bin/sbin之类的恢复
    QSS 记录
    #pragma 小节
    解决Github打不开问题
    判断数据是否在指定区间内
  • 原文地址:https://www.cnblogs.com/hantianwei/p/2606312.html
Copyright © 2011-2022 走看看