web-dev-qa-db-fra.com

Utilisation correcte de l'encodage de contenu

J'ai entendu dire que le fait de définir l'encodage du contenu d'une page sur Zip ou gzip réduirait les temps de chargement et réduirait la bande passante. Est-ce que cela vaut la peine d'être implémenté pour le site moyen ou uniquement pour les sites avec une charge élevée? Aussi, comment fait-on pour configurer les pages de cette manière dans un environnement LAMP? Existe-t-il une différence pratique entre Zip et gzip?

9
Oren Hizkiya

Cela vaut absolument la peine, même pour les sites avec un trafic moyen à faible. Bien que cela réduise votre bande passante (avec une légère augmentation de l'utilisation du processeur), le véritable avantage réside pour vos utilisateurs. Même en haut débit, vous remarquerez une amélioration des performances lors de l’accès aux pages compressées, mais vos utilisateurs utilisant des vitesses de réseau plus lentes et de nouveaux smartphones l’apprécieront vraiment.

6
JasonBirch

Le navigateur peut envoyer un en-tête "Accepter le codage" indiquant qu'il peut accepter différents types de codage. Habituellement c'est "gzip, deflate". (Google Chrome a un format bizarre appelé "sdch" que vous pouvez simplement ignorer.) Ensuite, si vous obtenez cet en-tête du navigateur, vous pouvez, si vous le souhaitez, renvoyer votre contenu compressé à l'aide de la touche gzip ou le format deflate. Lorsque vous faites cela, vous devez bien sûr dire au navigateur ce que vous avez fait. Vous devez donc ajouter l'en-tête "Content Encoding" à votre contenu sortant.

Les formats gzip et deflate sont définis dans le RFC (Internet Standards Documents). Il n'y a pas d'option "Zip", bien qu'il puisse y avoir une option "bzip2" dans certains navigateurs.

Maintenant, votre problème est de coder vos fichiers dans ce format et de les renvoyer. Si vous utilisez Apache, il existe des moyens de le configurer pour le faire automatiquement (mod_deflate, etc.). Si vous envoyez des images, sachez que la plupart des formats d'image, tels que JPEG, PNG, GIF, etc., sont déjà compressés. Vous n'avez donc aucun avantage à les compresser. Fondamentalement, cela ne fonctionne que pour HTML, CSS, texte brut ou JavaScript.

Vous devez faire attention en utilisant le codage "deflate", car Internet Explorer a un bug de longue date qui ne le comprend pas très bien. Je pense que des choses fantaisistes telles que Google App Engine détermineront automatiquement la compression à utiliser et l'appliqueront pour vous.

2
delete

Pour prolonger Jason Birchs et Kinopikos réponses: une autre raison de plus en plus importante pour laquelle vous souhaitez absolument appliquer cette optimisation (très simple) est l'annonce de Google à utiliser vitesse du site dans le classement de recherche sur le Web à partir du 09 avril 2010. Vous ne voulez sûrement pas manquer une amélioration de vos efforts de référencement aussi facile;)

Une fois que vous commencez à regarder les choses sous cet angle, vous bénéficierez probablement (et aimerez travailler avec) des outils respectifs qui vous donneront un aperçu du fonctionnement de vos pages et de ce que vous pouvez faire pour les améliorer:

1
Steffen Opel