Haga clic aquí para instalar Silverlight*
LatinoaméricaCambiar|Todos los sitios de Microsoft
Microsoft TechNet
|Suscríbase|Descarga|Contáctenos|Simplified


Utilizar compresión HTTP en su sitio Web de IIS 5.0

Dan Evers, MCSE, escritor de tecnologías Web
Equipo de documentación de Servicios de Internet Information Server
Microsoft Corporation

Servicios de Internet Information Server (IIS) 5.0 presenta la compresión HTTP, una característica nueva que comprime los archivos antes de enviarlos a través de la red. La compresión HTTP consigue una transmisión más rápida de páginas entre el servidor Web y los clientes preparados para la compresión, comprime y almacena en caché archivos estáticos, y realiza compresión a petición de resultados generados de forma dinámica. Mediante el uso de compresión HTTP, algunos servidores Web mejoran su rendimiento hasta en un 400%.

Este artículo trata los siguientes temas:

  • Introducción a la compresión HTTP
  • Para utilizar la compresión HTTP
  • Procedimientos para habilitar la compresión HTTP
  • Formas de personalizar la compresión HTTP

Introducción a la compresión HTTP

El uso de la compresión HTTP reduce el ancho de banda de la red que se utiliza para transferir cada archivo desde el servidor al cliente. Además, ayuda a reducir el tiempo de descarga y a mejorar el rendimiento de los usuarios finales. La compresión HTTP utiliza los algoritmos estándar GZIP y Deflate, que están integrados en Windows 2000, y en Internet Explorer 4 y versiones posteriores. Los algoritmos de compresión y descompresión comprimen y almacenan en caché archivos estáticos y, opcionalmente, realizan compresión a petición de las respuestas generadas de forma dinámica antes de enviarlas a través de la red. Estos mismos algoritmos se utilizan de nuevo para descomprimir los archivos estáticos y las respuestas dinámicas en un cliente compatible con HTTP 1.1. Para obtener más información acerca del protocolo HTTP 1.1 y los algoritmos GZIP y Deflate, consulte Recursos relacionados, más adelante en este mismo documento.

La primera vez que un cliente preparado para HTTP 1.1 solicita un archivo estático, IIS envía el archivo sin comprimir al cliente. IIS guarda entonces una copia comprimida del archivo estático en la carpeta temporal designada. La próxima vez que un cliente preparado para HTTP 1.1 solicita el archivo, IIS envía la versión comprimida desde la carpeta temporal. IIS también hace un seguimiento de las versiones originales sin comprimir de los archivos estáticos. Cuando se actualizan los archivos estáticos originales, IIS actualiza y vuelve a comprimir los archivos en la carpeta temporal. El resultado dinámico de las aplicaciones no se almacena en caché en la carpeta temporal, sino que el resultado de las secuencias de comandos se comprime cada vez que se envía a un cliente.

Compresión HTTP no es lo mismo que Compresión de archivos y carpetas. Estos métodos de compresión realizan tareas muy diferentes, como se describe en la tabla siguiente.
Compresión HTTP
Compresión de archivos y carpetas
• Almacena en caché una versión comprimida de los archivos estáticos en una carpeta temporal.

• Comprime el archivo original para ahorrar espacio de disco.

• Los archivos leídos de la carpeta temporal se escriben en memoria en estado comprimido.

• Descomprime el archivo en memoria cuando se lee del disco.

• Envía archivos comprimidos a través de la red, lo que reduce el uso del ancho de banda de la red y mejora los tiempos de descarga.

• Envía archivos sin comprimir a través de la red, por lo que no reduce el uso del ancho de banda de la red ni mejora los tiempos de descarga.

Estos dos métodos de compresión no pueden utilizarse simultáneamente en los mismos archivos. Si la compresión HTTP está habilitada para un archivo o una carpeta, no podrá comprimirse mediante Compresión de archivos y carpetas. Para obtener más información acerca de Compresión de archivos y carpetas, consulte "Recursos adicionales", más adelante en este mismo documento.

Importante Sólo los clientes compatibles con HTTP 1.1 solicitan archivos comprimidos. Los clientes que no son compatibles con HTTP 1.1 solicitan y reciben de IIS los archivos sin comprimir, por lo que no se benefician de los mejores tiempos de descarga que ofrecen los clientes compatibles con HTTP 1.1. Las versiones 4 y posteriores de Internet Explorer, el Explorador de Windows y Mi PC son clientes compatibles con HTTP 1.1 de manera predeterminada.

Para comprobar que Internet Explorer está configurado para utilizar el protocolo HTTP 1.1:

    Abra la hoja de propiedades Opciones de Internet.

    • Si está utilizando Internet Explorer 4, se encuentra en el menú Ver.
    • Si está utilizando Internet Explorer 5, se encuentra en el menú Herramientas.
  1. Seleccione la ficha Avanzadas.
  2. Bajo Configuración de HTTP 1.1, compruebe que está seleccionada la opción Usar HTTP 1.1 (consulte la figura 1 siguiente).


Si su explorador no admite.GIF marcos incrustados, haga clic aquí para ver el contenido en una página independiente.

Figura 1 La hoja de propiedades Opciones de Internet

Para utilizar la compresión HTTP

El aumento del rendimiento que se consigue gracias al uso de la compresión HTTP está determinado por variables, como la capacidad del procesador del servidor Web y el ancho de banda de la red. Los datos específicos de rendimiento quedan fuera del alcance de este artículo; sin embargo, se ofrecen algunas instrucciones generales acerca de cuándo habilitar la compresión HTTP.

Situaciones ideales para habilitar la compresión HTTP:

  • Ancho de banda de red estrecha: Los clientes que tienen acceso al servidor Web principalmente mediante módem están utilizando ancho de banda estrecho. Esto significa que la cantidad de datos que se pueden transferir cada intervalo de tiempo es mínima en comparación con una red de área local. Si un cliente solicita datos comprimidos, se transferirán menos bytes a través de la red, lo que da como resultado tiempos de descarga menores.
  • La mayoría del contenido alojado es estático: Si el servidor Web atiende principalmente archivos estáticos, la sobrecarga del procesador será mínima porque los archivos estáticos se almacenan en caché en una carpeta temporal. Los archivos estáticos sólo se vuelven a comprimir cuando cambia el archivo original, lo que reduce el tiempo que el procesador emplea en comprimir y volver a comprimir archivos.
  • Espacio en disco adecuado: Si habilita la compresión HTTP, asegúrese de que tiene suficiente espacio de disco como para almacenar las versiones sin comprimir y las versiones comprimidas de los archivos estáticos.

Situaciones no ideales para habilitar la compresión HTTP:

  • Valor elevado del contador % de tiempo de procesador: Si el contador % de tiempo de procesador ya está al 80 % o más, no se recomienda utilizar la compresión HTTP a menos que pueda actualizar la CPU del servidor.
  • Contenido dinámico: Si en el servidor se genera un gran volumen de contenido dinámico, al habilitar la compresión HTTP para los archivos de aplicación se hará un mayor uso del procesador. Como el contenido dinámico no se almacena en caché, se debe volver a comprimir cada vez que lo solicita un cliente.
  • Espacio en disco inadecuado: Si el servidor no tiene espacio de disco disponible para almacenar los archivos comprimidos, no habilite la compresión HTTP hasta que pueda agregar más espacio a la unidad de disco duro del servidor.

Para obtener más información acerca de cómo supervisar los contadores de rendimiento, consulte "Recursos relacionados", más adelante en este mismo documento.

Como se mencionó anteriormente, la compresión HTTP conserva el ancho de banda de la red y reduce los tiempos de descarga al reducir el tamaño de un archivo antes de transferirlo a través de la red. Sin embargo, esto requiere más recursos del servidor para la compresión y más recursos del cliente para la descompresión (consulte la tabla 1).

Tabla 1 Recursos y demandas con la compresión HTTP habilitada
Recurso
Servidor
Cliente
Procesador

• La compresión de resultados dinámicos requiere más ciclos de procesador (CPU) en el servidor.
• Sólo es necesario volver a comprimir los archivos estáticos cuando se actualizan en el servidor.
• Es necesario comprimir el resultado de las aplicaciones dinámicas cada vez que lo solicita un cliente.
• Sólo es necesario volver a comprimir los archivo estáticos cuando se actualizan en el servidor.

• La descompresión de archivos en el cliente requiere más ciclos de procesador (CPU).

Espacio en la unidad de disco duro

• El servidor almacena en caché los archivos estáticos comprimidos en la unidad de disco duro, de manera que no haya que volver a comprimirlos cada vez que los solicite un cliente.
• El almacenamiento en caché de la versión comprimida de un archivo estático, además de la versión sin comprimir del archivo, requiere espacio adicional en el disco duro.
• El resultado de las aplicaciones dinámicas no se almacena en caché en el disco duro.

• No se necesita espacio adicional en el disco duro del equipo cliente.

Procedimientos para habilitar la compresión HTTP

Debe establecer una línea de referencia del rendimiento del servidor Web antes de habilitar la compresión HTTP; de esta forma podrá determinar mejor si es conveniente utilizar la compresión HTTP para su situación en particular.

Utilice Monitor de sistema para registrar el contador % de tiempo de procesador del objeto Procesador durante varios días con el fin de establecer una línea de referencia. Este contador tiene una instancia Total y una instancia diferente para cada procesador del sistema. (Si su servidor tiene más de un procesador, probablemente deba observar los procesadores individuales, así como el total, para descubrir cualquier desequilibrio en la carga de trabajo.)

Una vez obtenida una línea de referencia del rendimiento, habilite la compresión HTTP en el servidor. Siga registrando el valor de estos contadores durante un periodo de tiempo prolongado, preferiblemente durante varios días. Compare los valores de referencia de rendimiento con los valores obtenidos con la compresión HTTP. Si el contador % de tiempo de procesador está constantemente por encima del 80%, no debe utilizar la compresión HTTP hasta que no pueda actualizar el servidor.

Para habilitar la compresión HTTP

La compresión HTTP se habilita servidor por servidor. Por tanto, si en un único servidor Web con IIS 5.0 tiene varios sitios, habilitará la compresión HTTP para todos los sitios.

  1. Desde el Administrador de servicios Internet, haga clic con el botón secundario del mouse (ratón) en el icono Equipo y seleccione Propiedades.
  2. En la ficha Servicios de Internet Information Server, bajo Propiedades principales, seleccione Servicio WWW.
  3. Haga clic en Modificar; debe aparecer la hoja Propiedades principales del servicio WWW.
  4. Seleccione la ficha Servicio (consulte la figura 2).
  5. Si desea comprimir archivos estáticos para transmitirlos a los clientes que admiten compresión, seleccione Comprimir archivos estáticos. Al seleccionar esta opción se comprimirán y almacenarán en caché los archivos que tengan las extensiones "htm", "html" y "txt".
  6. Escriba la ruta de acceso a un directorio local en el cuadro de texto Carpeta temporal o utilice el botón Examinar para encontrar un directorio donde se almacenarán los archivos comprimidos.

    Importante El directorio que elija en el paso 6 debe encontrarse en una unidad que sea local del servidor Web y debe estar en una partición NTFS (Sistema de archivos de nueva tecnología). El directorio, que no debe estar compartido, no puede ser un directorio comprimido ni debe estar en un volumen comprimido. Para obtener más información acerca de NTFS, busque la palabra clave "NTFS" en la Ayuda en pantalla de Windows 2000.

  7. Si desea comprimir el resultado dinámico de las aplicaciones para transmitirlo a los clientes que admiten compresión, seleccione Comprimir archivos de aplicación. Al seleccionar esta opción se comprime y se almacena en caché el resultado dinámico de las aplicaciones cuyas extensiones de archivo son "dll", "asp" y "exe".

    Importante No se recomienda comprimir el resultado de los archivos de aplicación a menos que muchos clientes vayan a tener acceso al servidor a través de una conexión lenta, como un módem. Asegúrese también de que el servidor Web tiene suficiente capacidad de procesador como para volver a comprimir los archivos dinámicos cada vez que los solicite un cliente antes de habilitar Comprimir archivos de aplicación.

  8. Para limitar el tamaño máximo de la carpeta temporal, seleccione Limitado a y escriba un número entero en el campo MB.


Si su explorador no admite marcos incrustados, haga clic aquí para ver el contenido en una página independiente.

Figura 2 La hoja Propiedades principales del servicio WWW

De manera predeterminada, el tamaño máximo de la carpeta temporal es ilimitado. Esto es válido para los servidores Web que tienen suficiente capacidad de almacenamiento en disco duro para la versión sin comprimir y para la versión comprimida de los archivos estáticos almacenados en la carpeta temporal.

Sin embargo, si la escasez de espacio en disco es un problema, seleccione Limitado a. Cuando se alcance el tamaño máximo de la carpeta temporal especificado en el campo MB, IIS eliminará 256 archivos para hacer sitio y que se puedan almacenar en caché en la carpeta temporal los nuevos archivos comprimidos. La configuración de una carpeta temporal demasiado pequeña puede afectar al rendimiento, ya que IIS tendrá que volver a comprimir y volver a almacenar en caché los archivos estáticos, lo que significa un mayor uso de la CPU y un mayor tiempo de acceso a la unidad de disco duro.

Formas de personalizar la compresión HTTP

Como se ha indicado anteriormente, la opción para comprimir los archivos estáticos de la hoja Propiedades principales del servicio WWW sólo comprime los archivos que tienen las extensiones "htm", "html" y "txt". Además, la opción para comprimir archivos de aplicación de esta hoja de propiedades sólo comprime el resultado de los archivos cuyas extensiones son "dll", "asp" y "exe". Estas extensiones de nombre de archivo se guardan como parámetros en las claves HcFileExtensions y HcScriptFileExtensions de la metabase, respectivamente. No es posible personalizar estos parámetros predeterminados desde la hoja de propiedades; sin embargo, se pueden personalizar modificando la metabase directamente, como se muestra en los escenarios siguientes. Para obtener más información acerca de la metabase, busque la palabra clave "metabase" en la documentación en pantalla de IIS 5.0.

En los escenarios siguientes se describe cómo agregar tipos de archivo o quitar tipos de archivo de la lista indicada anteriormente de tipos de archivo que se pueden comprimir. Es preciso realizar los pasos siguientes además de los enumerados anteriormente en la sección "Para habilitar la compresión HTTP".

Escenario 1

La opción para comprimir archivos estáticos se ha habilitado en la hoja Propiedades principales del servicio WWW (consulte la figura 2). Además de comprimir archivos con las extensiones "htm", "html" y "txt", también puede decidir comprimir archivos que tengan las extensiones "doc" y "xls".

Los comandos enumerados en el paso 3 siguiente reemplazan las extensiones de archivo definidas previamente después de reiniciarse los Servicios de IIS. Los nuevos parámetros ("doc" y "xls") no se anexan a las extensiones de archivo existentes; por tanto, incluya también los tipos de archivo habilitados antes mediante la hoja Propiedades principales del servicio WWW.

  1. Abra una ventana de símbolo del sistema.
  2. Dentro de la ventana de símbolo del sistema, vaya hasta \inetpub\AdminScripts del servidor en el que vaya a habilitar la compresión HTTP.
  3. Escriba las líneas siguientes en la ventana de símbolo del sistema:

    cscript.exe adsutil.vbs set W3Svc/Filters/Compression/GZIP/HcFileExtensions "htm" "html" "txt" "doc" "xls"

    cscript.exe adsutil.vbs set W3Svc/Filters/Compression/DEFLATE/HcFileExtensions "htm" "html" "txt" "doc" "xls"

    IISreset.exe /restart

Utilice el Explorador de Windows para ver cómo las versiones comprimidas de los archivos aparecen en la carpeta que seleccionó como carpeta temporal en la hoja Propiedades principales del servicio WWW (consulte la figura 2). Recuerde que estos archivos sólo se almacenan en caché en la carpeta temporal la primera vez que los solicita un cliente.

Escenario 2

La opción para comprimir archivos de aplicación se ha habilitado en la hoja Propiedades principales del servicio WWW (consulte la figura 2). De manera predeterminada, esto comprime el resultado dinámico de los archivos cuyas extensiones son "dll", "asp" y "exe". Decide no comprimir el resultado de los archivos que tienen las extensiones "exe" o "dll" y sólo comprime el resultado de las secuencias de comandos de los archivos ASP.

Del escenario 1 hemos aprendido que los comandos enumerados en el paso 3 siguiente reemplazan las extensiones de archivo definidas previamente después de reiniciarse los Servicios de IIS. Los nuevos parámetros no se anexan a las extensiones de archivo existentes; por tanto, omita los tipos de archivo no deseados que se habilitaron antes mediante la hoja Propiedades principales del servicio WWW.

  1. Abra una ventana de símbolo del sistema.
  2. Dentro de la ventana de símbolo del sistema, vaya hasta \inetpub\AdminScripts del servidor en el que vaya a habilitar la compresión HTTP.
  3. Escriba las líneas siguientes en la ventana de símbolo del sistema:

    cscript.exe adsutil.vbs set W3Svc/Filters/Compression/GZIP/HcScriptFileExtensions "asp"

    cscript.exe adsutil.vbs set W3Svc/Filters/Compression/DEFLATE/HcScriptFileExtensions "asp"

    IISreset.exe /restart

Si se ha habilitado la compresión tanto de los archivos de aplicación como de los archivos estáticos, el procedimiento del escenario 2 no afectará a la configuración de los archivos estáticos establecida en el escenario 1 ni a la configuración predeterminada de la hoja Propiedades del servicio WWW.

Escenario 3

Decide seleccionar la opción Limitado a para el tamaño máximo de la carpeta temporal y escribe 500 en el campo MB. De manera predeterminada se eliminan 256 archivos cuando se alcanza el tamaño máximo de la carpeta temporal (ahora está establecido como 500 MB). Cree que el rendimiento mejoraría si se eliminaran menos archivos al llegar a este límite y decide cambiar este valor a 10.

  1. Abra una ventana de símbolo del sistema.
  2. Dentro de la ventana de símbolo del sistema, vaya hasta \inetpub\AdminScripts del servidor en el que vaya a habilitar la compresión HTTP.
  3. Escriba las líneas siguientes en la ventana de símbolo del sistema:

    cscript.exe adsutil.vbs set 3Svc/Filters/Compression/Parameters/HcFilesDeletedPerDiskFree 10

    IISreset.exe /restart

El número que sigue inmediatamente a HcFilesDeletedPerDiskFree es el número de archivos que se eliminan. En el ejemplo anterior elegimos 10, pero es válido cualquier número entero.

Escenario 4

De manera predeterminada, cuando se selecciona la opción para comprimir archivos estáticos se comprimen y almacenan en caché todos los archivos que tienen las extensiones "htm", "html" y "txt", independientemente del tamaño de archivo original. En el caso de archivos estáticos muy pequeños, por ejemplo 10.000 bytes (10 KB), la versión comprimida del archivo puede ser realmente mayor que el archivo sin comprimir. Sabiendo esto, decide no comprimir los archivos de menos de 20.000 bytes (20 KB).

  1. Abra una ventana de símbolo del sistema.
  2. Dentro de la ventana de símbolo del sistema, vaya hasta \inetpub\AdminScripts del servidor en el que vaya a habilitar la compresión HTTP.
  3. Escriba las líneas siguientes en la ventana de símbolo del sistema:

    cscript.exe adsutil.vbs set W3Svc/Filters/Compression/Parameters/HcMinFileSizeForComp 20

    IISreset.exe /restart

El número que sigue inmediatamente a HcMinFileSizeForComp es el tamaño mínimo de archivo estático (en KB) que se comprimirá y almacenará en caché.

Conclusión

Espero que este artículo haya contribuido a entender mejor la compresión HTTP.

Ya sabe lo que es la compresión HTTP, cómo funciona y cómo decidir si debe utilizarla. Cuando la compresión HTTP está habilitada, los usuarios del sitio Web pueden tener mejores tiempos de descarga si utilizan clientes compatibles con HTTP 1.1. Recuerde probar siempre el rendimiento del servidor antes de decidir si habilita o no la compresión HTTP. Es conveniente seguir supervisando el rendimiento del servidor de manera continuada, especialmente el contador % de tiempo de procesador. La supervisión del contador % de tiempo de procesador es especialmente importante si comprime el resultado dinámico de los archivos de aplicación, ya que el contenido dinámico se comprime cada vez que lo solicita un cliente.

También ha aprendido cómo habilitar y personalizar aún más la compresión HTTP en el servidor Web. Los escenarios mostrados anteriormente deben ser una buena referencia cuando esté en condiciones de habilitar esta eficaz característica nueva en su servidor Web de IIS 5.

Recursos relacionados

Documentos RFC

RFC es un acrónimo de Request for Comments, un documento en el que se publica un estándar, un protocolo u otra información relativa al funcionamiento de Internet. El RFC se publica realmente, bajo el control de IAB, después de su discusión y sirve como estándar. Es posible obtener los RFC en lugares como InterNIC.

RFC 2068 Hypertext Transfer Protocol – HTTP 1.1
<http://www.cis.ohio-state.edu/htbin/rfc/rfc2068.html>
Este documento es una descripción exhaustiva del protocolo HTTP 1.1.

RFC 1951<http://www.cis.ohio-state.edu/htbin/rfc/rfc1951.html>
En este documento se describe la especificación de formato de datos comprimidos Deflate integrado en IIS 5.0 y en las versiones 4 y superiores de Internet Explorer.

RFC 1952<http://www.cis.ohio-state.edu/htbin/rfc/rfc1952.html>
En este documento se describe la especificación del formato de archivo GZIP que se utiliza para comprimir y descomprimir archivos. Esta especificación está integrada en IIS 5.0, y en Internet Explorer 4 y posteriores.

Supervisar el rendimiento del procesador

Ayuda en pantalla de IIS 5.0
Busque las palabras clave "procesador" y "% de tiempo de procesador"

Ayuda en pantalla de Windows 2000 Server
Busque la palabra clave "Supervisar la actividad del procesador"

Guía de recursos de Servicios de Microsoft Internet Information Server 5.0, páginas 195 a 197
Este libro forma parte del Kit de recursos de Microsoft Windows 2000 Server - ISBN: 1572318058
Buena introducción relativa a la supervisión de los procesadores del servidor.

Solutions for Poor Server Performance
Un artículo de TechNet escrito por Gary Duthie donde se explican los contadores de rendimiento.
http://technet2.microsoft.com/windowsserver/en/technologies/featured/iis/default.mspx

Compresión de archivos y carpetas

Guía de operaciones de Microsoft Windows 2000 Server, páginas 141 - 147
Este libro forma parte del Kit de recursos de Microsoft Windows 2000 Server - ISBN: 1572318058

Ayuda en pantalla de Windows 2000 Server
Busque las palabras clave "Comprimir un archivo o una carpeta en una unidad NTFS", "Para cambiar las propiedades de archivos o carpetas", "Mostrar las carpetas y los archivos comprimidos en un color diferente", "compactar", "Para comprimir una unidad NTFS" y "Consideraciones cuando se planean particiones de discos".


©2018 Microsoft Corporation. Todos los derechos reservados. Póngase en contacto con nosotros |Aviso Legal |Marcas registradas |Privacidad
Microsoft