Brotli est un nouvel algorithme de compression développé par Google. La taille de réponse de compression plus petite permet une meilleure utilisation de l’espace et un chargement plus rapide des pages. Dans de nombreux cas, Brotli surpasse gzip. Avantages : Pour les assets web typiques comme css, html, js, Brotli surpasse gzip de 17 à 25 %. Densité Brotli -11 comparée à gzip-9 : html (corpus multilingue) : économiser 25 % de JS (10k le plus haut d’Alexa) : économiser 17 % de js rétrécissant (top 10k d’Alexa) : économiser 17 % de CSS (top 10k d’Alexa) : 20 % d’économies.
Introduction à l’algorithme de Brotli
Brotli a été initialement publié en 2015 pour la compression hors ligne des polices web. Les ingénieurs logiciels de Google ont publié une version améliorée de Brotli en septembre 2015, avec un accent particulier sur la compression HTTP. L’encodeur a été partiellement réécrit pour améliorer le taux de compression, l’encodeur et le décodeur ont été augmentés pour la vitesse, et l’API de streaming a été améliorée pour ajouter de meilleurs niveaux de qualité de compression. La nouvelle version présente également des améliorations de performance sur plusieurs plateformes et une réduction de la mémoire nécessaire au décodage.
Contrairement aux algorithmes de compression généralistes courants, Brotli utilise un dictionnaire prédéfini de 120 kilo-octets. Le dictionnaire contient plus de 13 000 mots, expressions et autres sous-chaînes couramment utilisés issus d’un vaste corpus de textes et de documents HTML. Des algorithmes prédéfinis peuvent augmenter la densité de compression des fichiers plus petits.
Utiliser Brotli au lieu de dégonfler pour compresser les fichiers texte peut généralement augmenter la densité de compression de 20 %, tandis que la vitesse de compression et de décompression est à peu près la même. Le type d’encodage de contenu pour la compression de flux utilisant Brotli a été proposé pour utiliser « br ».
Frère contre Gzip
Lors de l’évaluation des algorithmes de compression, nous nous concentrons sur deux indicateurs : le taux de compression et la vitesse de compression. Comme vous pouvez le voir sur la figure ci-dessus, quel que soit le niveau de compression utilisé parmi les 9 de gzip, son taux de compression est inférieur à celui de broli (comparé à gzip, il peut aussi être configuré à 10), et la vitesse de compression est également plus lente.
Avantage Brotli : Brotli surpasse gzip de 17 à 25 % pour les assets web classiques comme CSS, HTML, JS. Densité Brotli -11 comparée à gzip-9 : html (corpus multilingue) : économiser 25 % de JS (le 10k le plus élevé d’Alexa) : économiser 17 % du js rétrécissement (top 10k d’Alexa) : économiser 17 % du CSS (top 10k d’Alexa) : 20 % d’économies
asp.net noyau permet Brotli
Valeur d’en-tête Accept-Encoding
Configuration du code
Le code suivant montre comment activer un middleware de compression réactif pour les fournisseurs de type MIME et de compression par défaut (Brotli et Gzip) :
Note:
- application. UseResponseCompression doit être incluse dans l’application. Utilisez UseMvc avant d’appeler.
- Utilisez des outils comme Fiddler, Firebug ou Postman pour configurer l’en-tête de requête Accept-Encoding et étudier l’en-tête de la réponse, la taille et le corps.
Par défaut, le fournisseur de compression Brotli est ajouté à la matrice du fournisseur de compression en même temps que le fournisseur de compression Gzip. Lorsque le client prend en charge le format de données compressées Brotli, la compression passe par défaut à la compression Brotli. Si le client ne prend pas en charge Brotli, la compression passe par défaut à Gzip lorsque le client prend en charge la compression Gzip.
Test de compression BR
Ouvrez l’outil de capture de paquets Fiddler et utilisez un navigateur pour accéder à l’adresse de notre site web, vous pouvez voir ce qui suit :
En-tête de demande : Accept-Encoding : gzip, deflate, br
En-tête de réponse : Encodage de contenu : br
Lorsque la compression est effectuée, l’en-tête Content-Length est supprimé car le contenu du corps change lorsque la réponse est compressée.
Lorsque la compression est effectuée, l’en-tête Content-MD5 est supprimé car le contenu du corps a changé et le hachage n’est plus valide.
Quand asp.net core active la fonction https, Brotli n’aura pas d’effet sur la compression html et json, mais il peut compresser js et css. (Il est possible que la longueur du caractère soit trop petite pour être compressée, et qu’il devrait être fixé)
(Fin)
|