Y a-t-il des algorithmes de compression - la perte ou la perte sans perte - qui ont été spécifiquement adaptées pour traiter le contenu HTML du monde réel (désordonné et invalide)? P>
Sinon, quelles caractéristiques de HTML pourrions-nous tirer parti pour créer un tel algorithme? Quels sont les gains de performance potentiels? P>
En outre, je ne demande pas à la question de servir un tel contenu (via Apache ou tout autre serveur), ce qui est certainement intéressant, mais de le stocker et de l'analyser. P>
MISE À JOUR: Je ne veux pas dire GZIP - c'est évident - mais plutôt un algorithme spécialement em> conçu pour tirer parti des caractéristiques du contenu HTML. Par exemple, la structure prévisible de la balise et de l'arborescence. P>
10 Réponses :
Si je comprends votre question correctement ce dont vous avez besoin est une compression GZ, qui est disponible assez facilement avec Apache. P>
+1: GZIP est optimisé pour le contenu texte et HTML est souvent simplement simple ASCII. Il y a des modules pour Apache pouvant gzip à la volée.
À propos de la seule "perte" que je suis prêt à traiter avec le contenu HTML, en désordre ou non, est l'aplatissement des espaces. Il s'agit d'une étape typique de publication que des sites de volume élevés effectuent sur leur contenu, également appelé aplatissement. P>
Vous pouvez également aplatir de grandes libs JavaScript à l'aide du compresseur YUI, qui renomme tous les vars JavaScript aux noms courts, supprime les espaces, etc. Il est très important pour les grandes applications utilisant des kits tels que ExtJS, Dojo, etc. P>
Exécutez votre code à travers un minificateur HTML / Obfuscator qui en supprime le plus possible possible, puis laissez votre serveur Web la compresser avec GZIP. P>
Non, il n'y a pas d'algorithmes de compression spécifiques à HTML, car les utilisateurs généraux se sont révélés adéquats. P>
Les gains potentiels proviendraient de savoir à l'avance les éléments probables d'une page HTML - vous pouvez commencer par un dictionnaire prédéfini qui n'aurait pas besoin de faire partie du flux compressé. Mais cela ne donnerait pas de gain notable, car les algorithmes de compression sont extraordinairement bons pour choisir des sous-expressions communes à la volée. P>
Vous utiliseriez généralement un algorithme commun comme GZIP, qui est pris en charge par la plupart des navigateurs via le protocole HTTP. Le Documentation Apache montre comment activer Mod_deflate sans casser le support du navigateur de votre site web. p>
En outre, vous pouvez minimiser les fichiers HTML statiques (ou le faire de manière dynamique). p>
est Vous serez surpris de voir à quel point la compression gzip code>
compression pas suffisant pour votre Besoins? STRUT> Il vous donne environ 10: 1 ratio de compression, non seulement avec le contenu HTML, mais également avec JavaScript, CSS, etc. Strong> Fichiers, et est facilement disponible sur la plupart des serveurs ou des proxies inverse (par exemple Apache's mod_deflate code>
, NGinx NGinxHTTPGZipModule < / code>
etc.) et tous les navigateurs modernes (vous pouvez demander à Apache et NGinx de sauter la compression pour des navigateurs spécifiques en fonction de utilisateur-agent code>.) p>.
gzip code> est optimale. Certaines personnes ont suggéré vos fichiers strong>; Cependant, à moins que vos fichiers contiennent de nombreux commentaires (que le mini-intestin peut supprimer complètement, c'est-à-dire ce que vous avez probablement appelé «perte» - mais quelque chose que vous ne voulez probablement pas faire avec HTML, pas à moins que vous n'êtes certain que Aucun de vos
Perte?