web-dev-qa-db-fra.com

mod_deflate vs mod_gzip

Quelqu'un peut-il me dire la différence dans les scripts suivants en termes de performances de charge CPU et de compression?

<ifModule mod_gzip.c> 
mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 


<ifModule mod_deflate.c> 
<filesMatch "\.(js|css)$"> SetOutputFilter DEFLATE </filesMatch> 
</ifModule> 
30
Bachalo

Ces deux modules font la même chose: ajouter la compression gzip à la volée.

Celui que vous devez utiliser de nos jours est mod_deflate - c'est le plus moderne et recommandé et est distribué avec Apache. mod_gzip était une ancienne implémentation tierce et il n'y a plus de raison de l'utiliser.

Ne vous laissez pas berner par les noms en leur faisant croire qu'ils utilisent différents schémas de compression. Ils utilisent tous les deux gzip (qui est un format qui utilise un algorithme de compression appelé DEFLATE). Ce dernier n'est appelé mod_deflate que parce que le nom mod_gzip a été pris. Les deux obtiendront les mêmes niveaux de compression avec des paramètres équivalents.

Ils ont une configuration différente (qui peut inclure différents paramètres par défaut), vous devez donc trouver de la documentation pour celui que vous utilisez.

11
thomasrutter

Je suppose que vous posez des questions sur les différences entre ces deux, et non sur la compression en général. Dans ce cas, je recommande d'utiliser mod_deflate qui repose sur le projet zlib toujours actif. BTW, les anciens articles (6-7 ans) qui comparent les deux, ne sont plus d'actualité.

9
eyalzo

La plupart des algorithmes de compression, lorsqu'ils sont appliqués à un fichier en texte brut, peuvent réduire sa taille de 70% ou plus, selon le contenu du fichier. Lorsque vous utilisez des algorithmes de compression, la différence entre les niveaux de compression standard et maximum est faible, surtout si vous considérez le temps CPU supplémentaire nécessaire pour traiter ces passes de compression supplémentaires. Ceci est très important lors de la compression dynamique de contenu Web. La plupart des techniques de compression de contenu logiciel utilisent un niveau de compression de 6 (sur 9 niveaux) pour conserver les cycles CPU. La différence de taille de fichier entre le niveau 6 et le niveau 9 est généralement si faible qu'elle ne vaut pas le temps supplémentaire nécessaire.

Pour les fichiers identifiés comme des types MIME text /.*, la compression peut être appliquée au fichier avant de le placer sur le fil. Cela réduit simultanément le nombre d'octets transférés et améliore les performances. Les tests ont également montré que les fichiers Microsoft Office et PostScipt peuvent être encodés GZIP pour le transport par les modules de compression.

Certains types MIME importants qui ne peuvent pas être encodés GZIP sont des fichiers JavaScript externes, PDF et fichiers image. Le problème avec les fichiers Javascript est principalement dû à des bogues dans le logiciel de navigation, car ces fichiers sont vraiment des fichiers texte et les performances globales gagneraient à être compressées pour le transport. PDF et les fichiers image sont déjà compressés, et tenter de les compresser à nouveau les agrandit simplement et entraîne des problèmes de rendu potentiels avec les navigateurs.

Avant d'envoyer un fichier compressé à un client, il est essentiel que le serveur s'assure que le client qui reçoit les données comprend et restitue correctement le format compressé. Les navigateurs qui comprennent le contenu compressé envoient une variante des en-têtes de demande client suivants:

Accept-encoding: gzip

Accept-encoding: gzip, deflate 

Les principaux navigateurs actuels incluent une certaine variation de ce message à chaque demande qu'ils envoient. Si le serveur voit l'en-tête et choisit de fournir un contenu compressé, il doit répondre avec l'en-tête de réponse du serveur:

Pour plus d'informations, consultez cet article: http://www.linuxjournal.com/article/6802

6
irl

L'activation de mod_deflate et mod_gzip accomplit essentiellement la même chose, ils compressent tous les deux vos fichiers Web avant qu'ils ne soient envoyés aux visiteurs de votre site Web.

Il existe cependant des différences entre les deux; mod_deflate peut parfois avoir un meilleur pourcentage de compression plus léger que mod_gzip . Une autre raison pour laquelle vous devriez choisir mod_deflate est qu'il est mieux pris en charge que mod_gzip, ce qui le rend plus facile à configurer car il est mieux documenté. Plus d'informations peuvent être trouvées ici .

3
William Dresker

Consultez cet article sur linuxjournal.com

http://www.linuxjournal.com/article/6802

À part cela, mod_deflate est plus facile à configurer et vient généralement avec le package Apache.

1
fotuzlab