Utilisation de compression HTTP sur votre site Web IIS 5.0

Sur cette page

Utilisation de compression HTTP sur votre site Web IIS 5.0 Utilisation de compression HTTP sur votre site Web IIS 5.0
Présentation de la compression HTTP Présentation de la compression HTTP
Utilisation de la compression HTTP Utilisation de la compression HTTP
Procédures d'activation de la compression HTTP Procédures d'activation de la compression HTTP
Pour activer la compression HTTP Pour activer la compression HTTP
Personnalisation de la compression HTTP Personnalisation de la compression HTTP
Conclusion Conclusion

Utilisation de compression HTTP sur votre site Web IIS 5.0

Dan Evers, MCSE, rédacteur sur les technologies Web
Équipe de documentation sur Internet Information Services
Microsoft Corporation

Internet Information Services (IIS) 5.0 présente la compression HTTP, une nouvelle fonction permettant de compresser des fichiers avant de les envoyer sur le réseau. Elle offre une transmission plus rapide des pages entre le serveur Web et les clients sur lesquels la compression est activée, elle compresse et place en cache les fichiers statiques et réalise une compression à la demande des résultats générés dynamiquement. Grâce à la compression HTTP, certains serveurs Web améliorent leurs performances jusqu'à 400 %.

Présentation de la compression HTTP

L'utilisation de la compression HTTP permet de réduire l'utilisation de la bande passante du réseau pour transférer chaque fichier, du serveur au client. En outre, elle permet de raccourcir le temps de téléchargement et d'améliorer les performances, au niveau de l'utilisateur final. Elle utilise les algorithmes standard GZIP et Deflate, intégrés à Windows 2000 et Internet Explorer version 4 et suivantes. Les algorithmes de compression, comme ceux de décompression, compressent et placent en mémoire cache les fichiers statiques et, en option, réalisent une compression à la demande des réponses générées de manière dynamique avant de les envoyer sur le réseau. Ces mêmes algorithmes sont une fois de plus utilisés pour décompresser les fichiers statiques et les réponses dynamiques sur un client pris en charge par HTTP 1.1. Consultez la rubrique Ressources connexes plus loin dans ce document pour obtenir de plus amples informations sur le protocole HTTP 1.1 et les algorithmes GZIP et Deflate.

Lorsqu'un client activé pour HTTP 1.1 demande pour la première fois un fichier statique, IIS lui envoie le fichier non compressé. Puis il enregistre une copie compressée du fichier statique dans le dossier temporaire désigné. À la demande suivante, IIS envoie la version compressée à partir du dossier temporaire. IIS conserve également un suivi des versions originales non compressées des fichiers statiques. Lorsque les fichiers statiques d'origine sont mis à jour, IIS actualise et recompresse les fichiers dans le dossier temporaire. Le résultat dynamique des applications n'est pas placé en cache dans le dossier temporaire, c'est le résultat du script qui est compressé chaque fois qu'il est envoyé à un client.

Il convient de noter que la compression HTTP n'est pas identique à la compression des fichiers et dossiers. En effet, ces méthodes de compression réalisent des tâches très différentes, comme l'indique le tableau suivant.

Compression HTTP
Compression des fichiers et dossiers
  • Met en cache une version compressée des fichiers statiques dans un dossier temporaire.

  • Compresse le fichier d'origine pour économiser de l'espace disque.

  • Les fichiers lus à partir du dossier temporaire sont écrits en mémoire une fois compressés.

  • Décompresse le fichier en mémoire, lorsqu'il est lu à partir du disque.

  • Envoie des fichiers compressés sur le réseau, ce qui réduit l'utilisation de la bande passante et améliore les temps de téléchargement.

  • Envoie des fichiers décompressés sur le réseau, ce qui ne permet pas l'utilisation réduite de la bande passante et n'améliore pas non plus les temps de téléchargement.

Ces deux méthodes de compression ne peuvent être utilisées simultanément sur les mêmes fichiers. Si la compression HTTP est activée pour un fichier ou un dossier, ces derniers ne peuvent être compressés à l'aide de la compression des fichiers et dossiers. Consultez la section Ressources connexes plus loin dans ce document pour obtenir de plus amples informations sur la compression des fichiers et des dossiers.

Important : seuls les clients compatibles HTTP 1.1 requièrent des fichiers compressés. Les autres demandent et reçoivent des fichiers non compressés à partir d'IIS et ne bénéficient donc pas de la réduction des temps de téléchargement proposée par les clients compatibles HTTP 1.1. Internet Explorer version 4 et suivantes, l'Explorateur Windows et le Poste de travail constituent tous, par défaut, des clients compatibles HTTP 1.1.

Pour vous assurer qu'Internet Explorer est configuré de manière à pouvoir utiliser le protocole HTTP 1.1, procédez comme indiqué ci-après.

  1. Ouvrez la feuille de propriétés de Options Internet

    • Si vous utilisez IE 4, elle se situe dans le menu Affichage

    • Si vous utilisez IE 5, elle se situe dans le menu Outils

  2. Sélectionnez l'onglet Avancées

  3. Sous Paramètres HTTP 1.1, vérifiez que l'option Utiliser HTTP 1.1 est bien sélectionnée (voir figure 1 ci-dessous).

Feuille de propriétés Options Internet

Figure 1 Feuille de propriétés Options Internet

Utilisation de la compression HTTP

L'amélioration des performances issue de l'utilisation de la compression HTTP est déterminée par des variables, telles que la puissance du processeur du serveur Web et la bande passante du réseau. Cet article n'a pas pour objectif de traiter des données de performance spécifiques, mais vous y trouverez quelques instructions d'ordre général sur le moment où activer la compression HTTP.

Situations idéales dans lesquelles activer la compression HTTP :

  • Une bande passante de réseau étroite : les clients qui accèdent à votre serveur Web, majoritairement par modem, utilisent une bande passante de réseau étroite. Cela signifie que la quantité de données qui peut être transférée par intervalle de temps est minimale, comparée à un réseau local. Lorsqu'un client demande des données compressées, un nombre d'octets moins important est transféré sur le réseau, ce qui réduit les temps de téléchargement.

  • La majeure partie du contenu statique est hébergée : si votre serveur Web sert en majeure partie des fichiers statiques, la surcharge du processeur est minimale car les fichiers sont placés en mémoire cache dans un dossier temporaire. Les fichiers statiques sont uniquement recompressés lorsque les fichiers d'origine changent, ce qui réduit le temps passé par le processeur à compresser et recompresser les fichiers.

  • Un espace disque suffisant : si vous avez activé la compression HTTP, assurez-vous que vous disposez de l'espace disque suffisant pour stocker les versions compressées et non compressées de vos fichiers statiques

Situations déconseillées pour la compression HTTP :

  • Un pourcentage temps processeur élevé : si le % temps processeur est déjà de 80 % ou plus, la compression HTTP n'est pas conseillée à moins de mettre à niveau l'unité centrale du serveur.

  • Un contenu dynamique : lorsqu'un volume de contenu dynamique important est généré sur votre serveur, l'activation de la compression HTTP pour les fichiers d'application entraîne une utilisation plus importante du processeur. Le contenu dynamique n'étant pas placé en mémoire cache, il doit être recompressé à chaque fois qu'un client le demande.

  • Un espace disque insuffisant : lorsque le serveur ne dispose pas d'espace disque suffisant pour stocker les fichiers compressés, n'activez pas la compression HTTP tant que de l'espace n'est pas ajouté.

Consultez la section Ressources connexes plus loin dans ce document pour obtenir de plus amples informations sur le contrôle des performances.

Comme nous l'avons mentionné précédemment, la compression HTTP permet de réduire l'utilisation de la bande passante du réseau et diminue les temps de téléchargement en réduisant la taille d'un fichier avant de le transférer. Toutefois, cela se fait au détriment des ressources serveur pour la compression et des ressources clientes pour la décompression (voir tableau 1).

Tableau 1 Ressources et exigences lorsque la compression HTTP est activée

Ressource Serveur Client
Processeur
  • La compression du résultat dynamique nécessite plus de cycles processeur (unité centrale) sur le serveur.

  • Les fichiers statiques n'ont besoin d'être recompressés que lorsqu'ils sont mis à jour sur le serveur.

  • Le résultat des applications dynamiques doit être compressé à chaque fois qu'un client le demande.

  • Les fichiers statiques n'ont besoin d'être recompressés que lorsqu'ils sont mis à jour sur le serveur.

  • La décompression des fichiers sur le client nécessite des cycles de processeurs (unités centrales) supplémentaires.

Espace sur le disque dur
  • Le serveur place des fichiers statiques compressés en mémoire cache sur le disque dur afin qu'ils n'aient pas besoin d'être recompressés à chaque fois qu'un client les demande.

  • La mise en cache de la version compressée d'un fichier statique en plus de la version non compressée du fichier nécessite de l'espace supplémentaire sur le disque dur.

  • Le résultat des applications dynamiques n'est pas placé en cache sur le disque dur.

  • Un espace disque supplémentaire n'est pas nécessaire sur l'ordinateur client.

Procédures d'activation de la compression HTTP

Il est préférable d'établir un référentiel pour les performances de votre serveur Web avant d'activer la compression HTTP. Cela vous aidera à déterminer si l'utilisation de la compression HTTP est adaptée à votre situation.

Utilisez le Moniteur système pour consigner le compteur du % temps processeur de l'objet Processeur sur plusieurs jours, de manière à établir un référentiel. Ce compteur présente une instance totale et une instance distincte pour chaque processeur du système (si votre serveur possède plusieurs processeurs, étudiez autant chaque processeur que l'ensemble des processeurs, de manière à découvrir tout déséquilibre de la charge de travail).

Après avoir obtenu un référentiel des performances, activez la compression HTTP sur votre serveur. Continuez à consigner la valeur de ces compteurs pendant une période prolongée, de préférence pendant plusieurs jours. Comparez les valeurs des référentiels de performance aux valeurs activées pour la compression HTTP. Si le compteur du % temps processeur dépasse constamment les 80 %, la compression HTTP n'est pas conseillée à moins que vous ne mettiez à niveau votre serveur.

Pour activer la compression HTTP

La compression HTTP est activée sur la base du serveur. Ainsi, si vous disposez de plusieurs sites fonctionnant sur un seul serveur Web IIS 5.0, vous activerez la compression HTTP pour tous les sites.

  1. Dans le Gestionnaire des services Internet, cliquez avec le bouton droit sur l'icône Ordinateur et sélectionnez Propriétés.

  2. Dans l'onglet Services Internet (IIS), sous Propriétés principales, sélectionnez Service WWW.

  3. Cliquez sur Modifier, la feuille de propriétés Propriétés principales du service WWW devrait apparaître.

  4. Sélectionnez l'onglet Service (voir figure 2).

  5. Pour compresser des fichiers statiques de manière à les transmettre à des clients activés pour la compression, sélectionnez Compresser les fichiers statiques. Cette option compresse et place en mémoire cache les fichiers portant l'extension "htm", "html" ou "txt".

  6. Tapez le chemin d'accès à un répertoire local dans la zone de texte Dossier temporaire ou utilisez le bouton Parcourir pour localiser un répertoire où sont conservés les fichiers compressés.

    Important : le répertoire choisi à l'étape 6 doit se trouver sur l'unité locale pour le serveur Web et sur une partition NTFS (New Technology File System). Le répertoire, qui ne doit pas être partagé, ne peut constituer un répertoire compressé ni se trouver sur un volume compressé. Pour obtenir de plus amples informations sur NTFS, recherchez le mot clé "NTFS" dans l'aide en ligne de Windows 2000.

  7. Pour compresser le résultat dynamique des applications à transmettre à des clients activés pour la compression, sélectionnez Compresser les fichiers d'application. Cette option compresse le résultat dynamique des applications portant l'extension de fichier "dll", "asp" ou "exe".

    Important : la compression du résultat des fichiers d'application n'est pas conseillée à moins que de nombreux clients accèdent à votre serveur sur une connexion lente, comme un modem par exemple. Vérifiez que la puissance du processeur de votre serveur Web est suffisante pour gérer la recompression de fichiers dynamiques, chaque fois qu'un client les demande, avant d'activer l'option Compresser les fichiers d'application.

  8. Afin de limiter la taille maximale des dossiers temporaires, sélectionnez Limité à et tapez un nombre entier dans le champ Mo.

Feuille de propriétés Propriétés principales du service WWW

Figure 2 Feuille de propriétés Propriétés principales du service WWW

Par défaut, la taille maximale du dossier temporaire est définie comme étant illimitée. Ceci fonctionne bien pour les serveurs Web équipés d'un espace de stockage suffisant sur le disque dur, destiné à la version non compressée et à la version compressée des fichiers statiques stockées dans le dossier temporaire.

Toutefois, si le manque d'espace disque pose problème, sélectionnez Limité à . Lorsque la taille maximale du dossier temporaire est atteinte, telle qu'elle est configurée dans le champ Mo, IIS efface 256 fichiers pour faire de la place afin que les nouveaux fichiers compressés soient placés en mémoire cache dans le dossier temporaire. La configuration d'une taille de dossier temporaire trop petite peut avoir un impact sur les performances car IIS devra recompresser et replacer les fichiers statiques en mémoire cache, entraînant ainsi une utilisation plus importante de l'unité centrale et un temps d'accès ralenti au disque dur.

Personnalisation de la compression HTTP

Comme cela a été mentionné précédemment, l'option de compression des fichiers statiques sur la feuille de propriétés Propriétés principales du service WWW ne compresse que les fichiers portant l'extension "htm", "html" ou "txt". En outre, l'option de compression des fichiers d'application sur cette feuille de propriétés ne fait que compresser le résultat des fichiers portant l'extension "dll", "asp" ou "exe". Ces extensions de noms de fichiers sont respectivement enregistrées sous forme de paramètres dans les clés de métabase HcFileExtensions et HcScriptFileExtensions. Il n'est pas possible de personnaliser ces paramètres par défaut à partir de la feuille de propriétés, mais vous pouvez y le faire en modifiant directement la métabase, comme cela est indiqué dans les scénarios présentés ci-dessous. Pour obtenir de plus amples informations sur la métabase, recherchez le mot clé "métabase" dans l'aide en ligne de IIS 5.0.

Les scénarios suivants indiquent comment ajouter des types de fichiers à la liste précédente des types de fichiers compressibles, ou comment en supprimer. Les étapes suivantes doivent être réalisées en plus de celles qui ont été indiquées précédemment dans la section intitulée "Procédures d'activation de la compression HTTP".

Scénario n°1

L'option de compression des fichiers statiques a été activée dans la feuille de propriétés Propriétés principales du service WWW (voir figure 2). En plus de la compression des fichiers avec les extensions "htm", "html" ou "txt", vous pouvez également décider de compresser les fichiers portant les extensions "doc" ou "xls".

Les commandes recensées à l'étape 3 ci-dessous remplacent les extensions de fichiers précédemment définies après le redémarrage des services IIS. Les nouveaux paramètres ("doc" ou "xls") ne sont pas annexés aux extensions de fichiers existantes ; par conséquent, incluez également les types de fichiers qui étaient précédemment activés à l'aide de la feuille de propriétés Propriétés principales du service WWW.

  1. Ouvrez la fenêtre d'invite de commande.

  2. Dans cette fenêtre, cherchez \inetpub\AdminScripts pour sélectionner le serveur sur lequel vous activez la compression HTTP.

  3. Tapez les lignes suivantes dans la fenêtre de commande :

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

"xls"

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">cscript.exe adsutil.vbs set W3Svc/Filters/Compression/DEFLATE/HcFileExtensions "htm""html" "txt" "doc" 

"xls"

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml">IISreset.exe /restart</pre>

Utilisez l'Explorateur Windows pour regarder les versions compressées des fichiers qui apparaissent dans le dossier choisi comme dossier temporaire dans la feuille de propriétés Propriétés principales du service WWW (voir figure 2). N'oubliez pas que ces fichiers sont placés en mémoire cache dans le dossier temporaire uniquement lorsqu'un client les demande pour la première fois.

Scénario n°2

L'option de compression des fichiers d'application a été activée dans la feuille de propriétés Propriétés principales du service WWW (voir figure 2). Par défaut, cette option compresse le résultat dynamique des fichiers portant les extensions "dll", "asp" ou "exe". Vous pouvez décider de ne pas compresser le résultat des fichiers "exe" ou "dll", mais seulement le résultat du script des fichiers ASP.

Nous avons appris dans le scénario n°1 que les commandes recensées à l'étape 3 ci-dessous remplacent les extensions de fichiers précédemment définies après le redémarrage des services IIS. Les nouveaux paramètres ne sont pas annexés aux extensions de fichiers existantes ; par conséquent, vous pouvez omettre les types de fichiers indésirables qui étaient précédemment activés à l'aide de la feuille de propriétés Propriétés principales du service WWW.

  1. Ouvrez la fenêtre d'invite de commande.

  2. Dans cette fenêtre, cherchez \inetpub\AdminScripts pour sélectionner le serveur sur lequel vous activez la compression HTTP.

  3. Tapez les lignes suivantes dans la fenêtre de commande :

    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 la compression pour les fichiers d'application et les fichiers statiques est activée, la procédure du scénario n°2 n'affectera pas les paramètres des fichiers statiques définis dans le scénario n°1 ni les paramètres par défaut de la feuille de propriétés Propriétés principales du service WWW.

Scénario n°3

Vous décidez de sélectionner l'option Limité à pour obtenir une taille de dossier temporaire maximale et vous tapez 500 dans le champ Mo. Par défaut, 256 fichiers sont supprimés lorsque la taille maximale du dossier temporaire est atteinte (définie maintenant sur 500 Mo). En théorie, les performances seraient optimisées si un nombre de fichiers moins important était supprimé lorsque cette limite est atteinte et vous décidez donc de remplacer 256 par la valeur 10.

  1. Ouvrez la fenêtre d'invite de commande.

  2. Dans cette fenêtre, cherchez \inetpub\AdminScripts pour sélectionner le serveur sur lequel vous activez la compression HTTP.

  3. Tapez les lignes suivantes dans la fenêtre de commande :

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

Le nombre situé immédiatement après HcFilesDeletedPerDiskFree représente le nombre de fichiers supprimés. Dans l'exemple ci-dessus, nous avons choisi 10, mais tout autre nombre entier est valable.

Scénario n°4

Par défaut, lorsque l'option de compression des fichiers statiques est sélectionnée, tous les fichiers "htm", "html" et "txt" sont compressés et placés en mémoire cache, quelle que soit la taille du fichier d'origine. Dans le cas des très petits fichiers statiques, disons 10 000 octets (10 Ko), la version compressée du fichier peut en fait être plus grande que le fichier non compressé. En sachant ceci, vous décidez de ne pas compresser les fichiers inférieurs à 20 000 octets (20 Ko).

  1. Ouvrez la fenêtre d'invite de commande.

  2. Dans cette fenêtre, cherchez \inetpub\AdminScripts pour sélectionner le serveur sur lequel vous activez la compression HTTP.

  3. Tapez les lignes suivantes dans la fenêtre de commande :

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

Le nombre situé immédiatement après HcMinFileSizeForComp constitue la taille minimale (en Ko) du fichier qui sera compressé et placé en mémoire cache pour les fichiers statiques.

Conclusion

Cet article devrait vous avoir permis de mieux comprendre la compression HTTP.

Vous avez appris ce qu'est la compression HTTP, la manière dont elle fonctionne et comment décider si vous devez l'utiliser. Grâce à elle, les utilisateurs de votre site Web pourront bénéficier d'une réduction des temps de téléchargement s'ils utilisent des clients activés pour HTTP 1.1. N'oubliez pas de toujours tester les performances de votre serveur avant de décider d'activer la compression HTTP. Continuez à contrôler régulièrement les performances du serveur, en particulier celle du compteur % temps processeur. Ceci est particulièrement important si vous compressez le résultat dynamique des fichiers d'application car celui-ci est compressé à chaque fois qu'un client le demande.

Vous avez également appris à activer la compression HTTP sur votre serveur Web et à la personnaliser. Les scénarios que nous avons présentés devraient vous servir de référence lorsque vous serez prêt à activer cette nouvelle fonction performante sur votre serveur Web IIS 5.

Dernière mise à jour le mardi 16 janvier 2001

Pour en savoir plus