web-dev-qa-db-fra.com

Activer IIS7 gzip

Comment puis-je activer IIS7 pour gzip des fichiers statiques tels que js et css et comment puis-je vérifier si IIS7 les gzipse avant de les envoyer au client?

224
Paulo

Configuration

Vous pouvez activer la compression GZIP entièrement dans votre fichier Web.config. Ceci est particulièrement utile si vous êtes sur un hébergement partagé et ne pouvez pas configurer directement IIS, ou si vous souhaitez que votre configuration soit transférée entre tous les environnements que vous ciblez.

<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>

Essai

Pour vérifier si la compression fonctionne ou non, utilisez les outils developer de Chrome ou Firebug pour Firefox et assurez-vous que l'en-tête de réponse HTTP est défini:

Content-Encoding: gzip

Notez que cet en-tête ne sera pas présent si le code de réponse est 304 (non modifié). Si tel est le cas, effectuez une actualisation complète (maintenez la touche Maj ou Contrôle enfoncée tout en appuyant sur le bouton d'actualisation), puis vérifiez à nouveau.

240
Drew Noakes

Vous devez activer la fonctionnalité dans le panneau de configuration des fonctionnalités Windows:

IIS feature screenshot

57
Charlie

Global Gzip dans HttpModule

Si vous n'avez pas accès à la dernière instance IIS (hébergement partagé ...), vous pouvez créer un HttpModule qui ajoute ce code à chaque événement 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;

Test

Bravo, aucune solution n'est faite sans test. J'aime utiliser le plugin Firefox " Liveheaders " qui affiche toutes les informations sur chaque message http entre le navigateur et le serveur, y compris la compression, la taille du fichier (que vous pouvez comparer à la taille du fichier sur le serveur).

36
rizzle

sous windows 2012 r2 on peut le trouver ici:

 enter image description here

5
Sebastian 506563

Si vous utilisez YSlow avec Firebug et analysez les performances de votre page, YSlow vous indiquera quels artefacts de votre page ne sont pas gzip'd!

1
jadusty

Comme mentionné par Charlie, je n'avais besoin que d'ajouter la fonctionnalité dans Windows. Pour les personnes qui ne peuvent pas la trouver sur Windows 10 ou sur le serveur 2012+, trouvez-la comme ci-dessous. J'ai un peu lutté

Windows 10

 enter image description here

serveur Windows 2012 R2

 enter image description here

serveur de fenêtre 2016

 enter image description here

1
Ashkan Sirous

Si vous essayez également de gzip des pages dynamiques (comme ASPX) et que cela ne fonctionne pas, c'est probablement parce que l'option n'est pas activée (vous devez installer le module Dynamic Content Compression à l'aide des fonctionnalités Windows):

http://support.esri.com/fr/knowledgebase/techarticles/detail/38616

1
steve cook

Essayez Firefox avec les addons Firebug installés. Je l'utilise; excellent outil pour développeur web.

J'ai également activé la compression Gzip dans IIS7 à l'aide de web.config. 

0
user495450

Un autre moyen simple de tester sans rien installer est qu'il ne dépend pas non plus de la version de IIS. Collez votre URL à ceci lien - SEO Checkup

test gzip

Pour ajouter à web.config: http://www.iis.net/configreference/system.webserver/httpcompression

0
George

Pour tous les pauvres qui doivent lutter avec un serveur allemand/allemand :)

 auf deutsch bitte schön

0
Stefan Michev