Quels sont les avantages des deux méthodes pour les fichiers html, css et javascript servis par un serveur LAMP. Y a-t-il de meilleures alternatives?
Le serveur fournit des informations à une application cartographique utilisant Json, donc un volume élevé de petits fichiers.
Réponses:
La réponse simple est non .
La RFC 2616 définit le dégonflage comme:
Le format zlib est défini dans la RFC 1950 comme:
Donc, quelques en-têtes et une somme de contrôle ADLER32
La RFC 2616 définit gzip comme:
La RFC 1952 définit les données compressées comme:
CRC-32 est plus lent que ADLER32
Donc ... nous avons 2 mécanismes de compression qui utilisent le même algorithme pour la compression, mais un algorithme différent pour les en-têtes et la somme de contrôle.
Maintenant, les paquets TCP sous-jacents sont déjà assez fiables , donc le problème ici n'est pas Adler 32 vs CRC-32 que GZIP utilise.
Il s'avère que de nombreux navigateurs au fil des ans ont mis en œuvre un algorithme de dégonflage incorrect. Au lieu d'attendre l'en-tête zlib dans la RFC 1950, ils s'attendaient simplement à la charge utile compressée. De même, divers serveurs Web ont fait la même erreur.
Ainsi, au fil des ans, les navigateurs ont commencé à implémenter une implémentation de dégonflage de logique floue , ils essaient pour l'en-tête zlib et la somme de contrôle adler, si cela échoue, ils essaient pour la charge utile.
Le résultat d'une logique complexe comme celle-ci est qu'elle est souvent brisée. Verve Studio a une section de test contribuée par l'utilisateur qui montre à quel point la situation est mauvaise.
Par exemple: dégonfler fonctionne dans Safari 4.0 mais est cassé dans Safari 5.1, il a également toujours des problèmes sur IE.
Donc, la meilleure chose à faire est d'éviter complètement le dégonflage, l'augmentation de vitesse mineure (due à l'adler 32) ne vaut pas le risque de charges utiles cassées.
la source
GZip est simplement dégonflé plus une somme de contrôle et un en-tête / pied de page. Le dégonflage est plus rapide , cependant, comme je l'ai appris à la dure.
la source
Vous n'êtes probablement pas en mesure de choisir le dégonflage en option. Contrairement à ce à quoi vous pouvez vous attendre, mod_deflate n'utilise pas deflate mais gzip. Ainsi, bien que la plupart des arguments avancés soient valables, cela n'est probablement pas pertinent pour la plupart.
la source
Je pense qu'il n'y a pas de grande différence entre dégonfler et gzip, car gzip n'est en fait qu'un en-tête enroulé autour de dégonfler (voir les RFC 1951 et 1952).
la source
La raison principale est que le dégonflage est plus rapide à coder que gzip et sur un serveur occupé qui pourrait faire une différence. Avec les pages statiques, c'est une question différente, car elles peuvent facilement être précompressées une fois.
la source
mod_deflate nécessite moins de ressources sur votre serveur, bien que vous puissiez payer une petite pénalité en termes de quantité de compression.
Si vous servez de nombreux petits fichiers, je vous recommande de comparer et de tester la charge de vos solutions compressées et non compressées - vous pouvez trouver des cas où l'activation de la compression n'entraînera pas d'économies.
la source
Il ne devrait pas y avoir de différence entre gzip et dégonflage pour la décompression. Gzip est simplement dégonflé avec un en-tête de quelques dizaines d'octets enroulé autour, y compris une somme de contrôle. La somme de contrôle est la raison de la compression plus lente. Cependant, lorsque vous précompressez des millions de fichiers, vous voulez que ces sommes de contrôle soient un test de cohérence dans votre système de fichiers. De plus, vous pouvez utiliser des outils de ligne de commande pour obtenir des statistiques sur le fichier. Pour notre site, nous précompressons une tonne de données statiques (l'ensemble du répertoire ouvert, 13 000 jeux, la saisie semi-automatique pour des millions de mots-clés, etc.) et nous sommes classés 95% plus rapidement que tous les sites Web par Alexa. Recherche Faxo. Cependant, nous utilisons un serveur Web propriétaire développé localement. Apache / mod_deflate ne l'a tout simplement pas coupé. Lorsque ces fichiers sont compressés dans le système de fichiers, non seulement vous prenez un coup pour votre fichier avec la taille minimale du bloc de système de fichiers, mais tout le surcoût inutile dans la gestion du fichier dans le système de fichiers dont le serveur Web se soucie peu. Vos préoccupations doivent être l'empreinte totale du disque et le temps d'accès / de décompression et, accessoirement, la vitesse d'obtention de ces données précompressées. L'encombrement est important car même si l'espace disque est bon marché, vous souhaitez autant que possible tenir dans le cache.
la source
Sur Ubuntu avec Apache2 et le module dégonfler déjà installé ( ce qui est par défaut), vous pouvez activer
dégonflerla compression gzip en deux étapes:Et tu es parti! J'ai trouvé les pages que j'ai diffusées via ma connexion adsl chargées beaucoup plus rapidement.
Edit: Selon le commentaire de @ GertvandenBerg, cela permet la compression gzip, pas le dégonfler.
la source
si je me souviens bien
la source