HttpCompressionModule

| | Comentarios (0)

Hace tiempo que tenía guardado por ahí un pequeño código que permite que nuestra aplicación ASP.NET envie el contenido conprimido al navegador, con lo que se ahorra en ancho de banda, y como las transferencias tardan menos, se ahorra en memoria del servidor.

Ojito: Es un ejemplo, yo personalmente prefiero usar la compresión del IIS


namespace Comprime
{
    using System;
    using System.IO;
    using System.IO.Compression;
    using System.Web;

    public class HttpCompressionModule : IHttpModule
    {
        private void context_BeginRequest(object sender, EventArgs e)
        {
            HttpApplication myApp = sender as HttpApplication;
            if (myApp != null)
            {
                string myAcceptEncoding = myApp.Request.Headers.Get("Accept-Encoding");
                if (!string.IsNullOrEmpty(myAcceptEncoding))
                {
                    myAcceptEncoding = myAcceptEncoding.ToLower();
                    if (myAcceptEncoding.Contains("gzip"))
                    {
                        myApp.Response.Filter = new GZipStream(myApp.Response.Filter, CompressionMode.Compress);
                        myApp.Response.AppendHeader("Content-Encoding", "gzip");
                    }
                    else if (myAcceptEncoding.Contains("deflate"))
                    {
                        myApp.Response.Filter = new DeflateStream(myApp.Response.Filter, CompressionMode.Compress);
                        myApp.Response.AppendHeader("Content-Encoding", "deflate");
                    }
                }
            }
        }

        void IHttpModule.Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(this.context_BeginRequest);
        }

        void IHttpModule.Dispose()
        {
            // Nothing
        }

    }
} 

Categorías

Escribir un comentario

Sobre esta entrada

Esta página contiene una sola entrada realizada por Víctor y publicada el 31 de Octubre 2008 1:35 PM.

Para mostrar programas en otra sesión de x-windows es la entrada anterior en este blog.

Bajar ficheros aunque estén asociados a un programa es la entrada siguiente en este blog.

Encontrará los contenidos recientes en la página principal. Consulte los archivos para ver todos los contenidos.

Publicidad