Respuestas:
Puede habilitar la compresión GZIP por completo en su Web.config
archivo. Esto es particularmente útil si está en un alojamiento compartido y no puede configurar IIS directamente, o si desea que su configuración se transmita entre todos los entornos a los que se dirige.
<system.webServer>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>
Para probar si la compresión funciona o no, use las herramientas de desarrollador en Chrome o Firebug para Firefox y asegúrese de que el encabezado de respuesta HTTP esté configurado:
Content-Encoding: gzip
Tenga en cuenta que este encabezado no estará presente si el código de respuesta es 304 (no modificado). Si ese es el caso, realice una actualización completa (mantenga presionada la tecla Mayús o control mientras presiona el botón Actualizar) y verifique nuevamente.
.js
no lo hace. Además, intenté agregar application/x-javascript
. Utilizando junto con tomcat, por lo tanto, eliminó el directory
parámetro.
Deberá habilitar la función en el panel de control de Características de Windows:
Global Gzip en HttpModule
Si no tiene acceso a la instancia final de IIS (alojamiento compartido ...), puede crear un HttpModule que agregue este código a cada evento HttpApplication.Begin_Request:
HttpContext context = HttpContext.Current;
context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
HttpContext.Current.Response.AppendHeader("Content-encoding", "gzip");
HttpContext.Current.Response.Cache.VaryByHeaders["Accept-encoding"] = true;
Pruebas
Felicitaciones, no se hace ninguna solución sin pruebas. Me gusta usar el complemento de Firefox " Liveheaders ", que muestra toda la información sobre cada mensaje http entre el navegador y el servidor, incluida la compresión, el tamaño del archivo (que puede comparar con el tamaño del archivo en el servidor).
Solo necesitaba agregar la función en las funciones de Windows como mencionó Charlie. Para las personas que no pueden encontrarla en la ventana 10 o en el servidor 2012+, búsquela como se muestra a continuación. Luché un poco
Si también está tratando de comprimir páginas dinámicas (como aspx) y no funciona, probablemente sea porque la opción no está habilitada (debe instalar el módulo de Compresión de contenido dinámico usando las características de Windows):
http://support.esri.com/en/knowledgebase/techarticles/detail/38616
Otra forma fácil de probar sin instalar nada, tampoco depende de la versión de IIS. Pegue su URL en este enlace - Chequeo SEO
Para agregar a web.config: http://www.iis.net/configreference/system.webserver/httpcompression
Prueba Firefox con los complementos de Firebug instalados. Lo estoy usando; Gran herramienta para desarrolladores web.
También he habilitado la compresión Gzip en mi IIS7 usando web.config.