Wednesday, July 18, 2012

How to set gzip/deflate compression in .net.

To enable Gzip and deflate compression in Asp.net website, you just need to place this code in global.asax.
however you can also apply this setting to IIS level.

void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {
      
        try
        {
            HttpResponse Response = HttpContext.Current.Response;
            String AcceptEncoding = HttpContext.Current.Request.Headers["Accept-Encoding"];



            if (String.IsNullOrEmpty(AcceptEncoding) && AcceptEncoding.Contains("gzip") || AcceptEncoding.Contains("deflate"))
            {
                if (AcceptEncoding.Contains("deflate"))
                {
                    Response.Filter = new System.IO.Compression.DeflateStream(Response.Filter, System.IO.Compression.CompressionMode.Compress);
                    Response.AppendHeader("Content-Encoding", "deflate");
                }
                else
                {
                    Response.Filter = new System.IO.Compression.GZipStream(Response.Filter, System.IO.Compression.CompressionMode.Compress);
                    Response.AppendHeader("Content-Encoding", "gzip");
                }
            }

            Response.AppendHeader("Vary", "Content-Encoding");
        }
        catch (Exception)
        {
        }

    }

2 comments:

  1. Nice code snippet...grt

    ReplyDelete
  2. thanks buddy...this is just a beginning...Follow this site for more code.

    ReplyDelete