L'efficacité Brotli dans le monde réel

L'une des rĂšgles les plus fondamentales pour dĂ©velopper des sites Web rapides est d'optimiser leurs ressources. Si nous parlons de ressources textuelles - de code Ă©crit en HTML, CSS et JavaScript, cela signifie que nous parlons de compression de donnĂ©es. La norme de facto pour la compression des ressources textuelles sur le Web est la mĂ©thode Gzip. À savoir, environ 80% des ressources compressĂ©es obtenues lors des tĂ©lĂ©chargements du site sont compressĂ©es Ă  l'aide de Gzip. Pour compresser les 20% restants des ressources, un algorithme beaucoup plus rĂ©cent est utilisĂ© - Brotli.





Bien sĂ»r, ces 100% des ressources compressĂ©es qui entrent dans les navigateurs lorsqu'ils reçoivent des rĂ©ponses aux demandes des sites n'incluent absolument pas toutes les ressources. Il existe encore de nombreuses ressources qui pourraient ĂȘtre compressĂ©es ou qui pourraient ĂȘtre compressĂ©es. Mais ces ressources restent non compressĂ©es. Des mesures plus dĂ©taillĂ©es concernant la compression peuvent ĂȘtre trouvĂ©es dans la section Compression de la ressource Web Almanac.

La mĂ©thode de compression gzip est incroyablement efficace. Tout le travail de Shakespeare en texte brut prend 5,3 Mo. Et aprĂšs compression Gzip (niveau de compression 6), ils n'occupent que 1,9 Mo. Cela signifie que la taille du fichier dans lequel ces donnĂ©es sont stockĂ©es a diminuĂ© de 2,8 fois. Dans le mĂȘme temps, les donnĂ©es ne sont pas perdues pendant la compression. GĂ©nial!

Encore mieux, le degré de compression Gzip est affecté par la présence de lignes en double dans les fichiers. Plus il y a de répétitions dans le texte, plus la compression est efficace. C'est trÚs bon pour le web, car le code écrit en HTML, CSS et JS a une syntaxe uniforme et contient de nombreuses répétitions.

Mais, bien que Gzip soit une mĂ©thode de compression trĂšs efficace, il est Ă©galement assez ancien. Il est apparu en 1992 (ce qui, bien sĂ»r, aide Ă  expliquer sa prĂ©valence gĂ©nĂ©ralisĂ©e). AprĂšs 21 ans, en 2013, Google a publiĂ© Brotli, un nouvel algorithme qui promet des niveaux de compression encore plus Ă©levĂ©s que ceux dont la mĂ©thode Gzip est capable. Les mĂȘmes Ɠuvres de Shakespeare de 5,2 Mo sont compressĂ©es en utilisant Brotli Ă  une taille de 1,7 Mo (avec un niveau de compression de 6). Et cela signifie dĂ©jĂ  une rĂ©duction de 3,1 fois la taille du fichier. C'est encore mieux que d'utiliser Gzip.

En utilisant un outil pour évaluer le niveau de compression des données à l'aide de Gzip et Brotli, vous découvrirez probablement que lors de la compression de certaines données, Brotli est beaucoup plus efficace que Gzip. Par exemple, les données ReactDOM sont 27% plus petites lorsqu'elles sont compressées à l'aide de Brotli avec un niveau de compression maximum (11) que lors de l'utilisation de Gzip avec un niveau de compression maximum (9).

Voici une comparaison de la compression Brotli avec la compression Gzip lors du traitement de ReactDOM.

Niveau de compressionTaille (en octets)Efficacité de la compression (par rapport aux données non compressées)% D'amélioration par rapport à Gzip
1434562,733%
2398982,97Onze%
3394163.08quinze%
4384883.08quinze%
5363233.27dix-neuf%
6360483.29vingt%
7358043,31vingt%
8357093,3221%
9356593,3321%
dix335903,5325%
Onze330363,5927%

Comme vous pouvez le voir, Ă  tous les niveaux de compression, Brotli contourne Gzip. Au niveau de compression maximal disponible avec Brotli, il est 27% plus efficace que Gzip.

Et, sur la base d'une observation personnelle, je note que la transition d'un de mes clients de Gzip à Brotli a entraßné une réduction médiane de la taille des fichiers de 31%.

En conséquence, au cours des derniÚres années, avec d'autres experts en performance, j'ai encouragé les clients à passer de Gzip à Brotli.

Je vais dire quelques mots sur la prise en charge du navigateur pour Gzip et Brotli. Gzip est si rĂ©pandu que CanIUse n'affiche mĂȘme pas un tableau avec des informations de support. Il le dit: "Cet en-tĂȘte HTTP est pris en charge dans presque tous les navigateurs (Ă  commencer par IE6 +, Firefox 2+, Chrome 1+, etc.)." Et Brotli, tout en Ă©crivant ce matĂ©riel, bĂ©nĂ©ficie d'un soutien trĂšs agrĂ©able .Ă  93,17%. Et c'est trĂšs, beaucoup! Ainsi, si votre site a au moins une taille importante, vous n'aimerez pas particuliĂšrement le retour de ressources non compressĂ©es Ă  plus de 6% de vos utilisateurs. Mais en utilisant Brotli, vous ne perdrez rien. Les clients utilisent un modĂšle progressif de prise en charge de nouveaux algorithmes, de sorte que les utilisateurs qui ne peuvent pas accepter les ressources Brotli utiliseront simplement l'option de secours sous la forme de Gzip. Nous en parlerons plus loin ci-dessous.

En général, surtout si vous utilisez CDN, activer Brotli est une question de secondes. C'est du moins le cas avec Cloudflare, le service que j'utilise pour le site CSS Wizardry. Cependant, beaucoup de mes clients, si nous parlons des deux derniÚres années, ne réussissent pas aussi bien. Certains d'entre eux prennent en charge leur propre infrastructure, et la pratique montre que l'installation et le déploiement de Brotli n'est pas si simple. Certains utilisent des services CDN qui ne diffÚrent pas par des capacités facilement accessibles pour prendre en charge le nouvel algorithme.

Dans les cas oĂč nous ne pouvions pas passer Ă  Brotli, nous avions toujours une question sans rĂ©ponse: "Et si ...". En consĂ©quence, j'ai finalement dĂ©cidĂ© de m'armer de chiffres et de rĂ©pondre Ă  la question de savoir ce qui donne au site la transition vers Brotli.

Moins n'est pas nécessairement plus rapide.


Habituellement, «moins» signifie cependant «plus vite». En rĂšgle gĂ©nĂ©rale, si vous rĂ©duisez la taille du fichier, il sera transfĂ©rĂ© plus rapidement du serveur vers le client. Mais si vous faites un fichier, disons, 20% plus petit, cela ne signifie pas qu'il arrivera 20% plus rapidement. Le point ici est que la taille du fichier n'est qu'un aspect des performances Web. Et quelle que soit la taille du fichier, la ressource livrĂ©e au navigateur est associĂ©e Ă  de nombreux autres facteurs et Ă  de nombreuses limitations du systĂšme - retards rĂ©seau, perte de paquets, etc. En d'autres termes, Ă©conomiser sur la taille du fichier aide Ă  transfĂ©rer les mĂȘmes donnĂ©es qu'auparavant, en envoyant moins de paquets, mais le transfert de donnĂ©es entre le serveur et le client est limitĂ© par les retards du rĂ©seau, par consĂ©quent, la vitesse Ă  laquelle les paquets arrivant au client seront plus petits ne changera pas.

TCP, paquets, délai d'aller-retour


S'il est trĂšs simpliste d'envisager de transfĂ©rer des fichiers du serveur vers le client, nous devrons jeter un Ɠil au protocole TCP. Lorsque nous recevons un fichier du serveur, il ne nous parvient pas en une seule fois. Le protocole TCP, au-dessus duquel HTTP fonctionne, divise les fichiers en segments appelĂ©s paquets. Ces paquets sont envoyĂ©s au client dans l'ordre, dans l'ordre. Le client confirme la rĂ©ception de chaque paquet de la sĂ©rie avant de commencer le transfert de la sĂ©rie suivante. Cela se produit jusqu'Ă  ce que le client collecte tous les packages nĂ©cessaires, jusqu'Ă  ce qu'il n'y ait aucun package non envoyĂ© sur le serveur et jusqu'Ă  ce que le client puisse collecter les packages dans quelque chose qui peut ĂȘtre reconnu comme un fichier. Pour que la session de transfert de sĂ©quence de paquets se termine avec succĂšs, le serveur doit les envoyer au client et le client doit accuser rĂ©ception. Temps,La quantitĂ© de donnĂ©es nĂ©cessaires pour recevoir des donnĂ©es et recevoir une confirmation de rĂ©ception est appelĂ©e Round Trip Time (RTT).

Chaque nouvelle connexion TCP ne peut pas connaßtre la bande passante disponible et la fiabilité de la connexion (c'est-à-dire quel est le niveau de perte de paquets). Si le serveur essaie d'envoyer des mégaoctets de données sur une connexion qui prend en charge un taux de transfert de données d'un mégabit par seconde, un tel transfert submergera la connexion et entraßnera une surcharge du canal de communication. Et vice versa - si le serveur essaie de transférer une petite quantité de données via une connexion trÚs rapide, la connexion sera utilisée de maniÚre inefficace, elle sera inactive.

Pour rĂ©soudre ce casse-tĂȘte, TCP utilise un mĂ©canisme appelĂ© dĂ©marrage lent. Cela fait partie de la stratĂ©gie de gestion des fenĂȘtres de surcharge. Chaque nouvelle connexion TCP est limitĂ©e par la possibilitĂ© d'envoyer seulement 10 paquets de donnĂ©es dans la premiĂšre sĂ©quence de paquets (10 paquets - la taille de la fenĂȘtre de congestion initiale). Dix segments TCP reprĂ©sentent environ 14 Ko de donnĂ©es. Si ces paquets sont reçus avec succĂšs par le client, la deuxiĂšme sĂ©rie contiendra dĂ©jĂ  20 paquets, puis il y en aura 40, 80, 160 et ainsi de suite. La croissance exponentielle des paquets en sĂ©quences se poursuivra jusqu'Ă  ce que l'un des Ă©vĂ©nements suivants se produise:

  1. Le systĂšme fera face Ă  une perte de paquets. À ce stade, le serveur rĂ©duira le nombre de paquets dans l'ordre suivant, en divisant le nombre de paquets prĂ©cĂ©dent par 2, et essaiera de transfĂ©rer Ă  nouveau les donnĂ©es.
  2. Nous avons atteint la limite de bande passante disponible et pouvons l'utiliser à pleine capacité.

Cette stratégie simple et élégante vous permet d'équilibrer au bord de la prudence et de l'optimisme. Elle s'applique à chaque nouvelle connexion TCP établie par l'application Web.

En termes simples, la taille initiale de la fenĂȘtre d'encombrement de la nouvelle connexion TCP n'est que d'environ 14 Ko. Soit environ 11,8% des donnĂ©es ReactDOM non compressĂ©es. Soit 36,94% des donnĂ©es compressĂ©es Ă  l'aide de Gzip, soit 42,38% des donnĂ©es compressĂ©es Ă  l'aide de Brotli (au niveau de compression maximal).

Et puis nous allons ralentir. Le passage de 11,8% Ă  36,94% est dĂ©jĂ  une amĂ©lioration trĂšs sensible! Mais la transition de 36,94% Ă  42,38% - c'est loin d'ĂȘtre aussi impressionnant. Que ce passe-t-il?
Numéro de session de donnéesLa quantité de données transférées en une seule session, KbQuantité cumulée de données transférées, KbLa séquence dans laquelle les données ReactDOM sont transférées
11414
22842Gzip (37,904 Ko), Brotli (33,036 Ko)
35698
4112210Option non compressée (118,656 Ko)
5224434

Il s'avĂšre que les donnĂ©es compressĂ©es avec Gzip et les donnĂ©es compressĂ©es avec Brotli sont transmises dans la mĂȘme sĂ©rie de paquets. Le transfert d'un fichier prend deux sĂ©quences. Si le RTT s'avĂšre assez uniforme lors de la transmission de toutes les sĂ©quences, cela signifie qu'il faut le mĂȘme temps pour transmettre des donnĂ©es compressĂ©es Ă  l'aide de Gzip et Brotli. En revanche, le transfert d'une version non compressĂ©e de donnĂ©es nĂ©cessite quatre sĂ©ries de paquets, pas deux. Et cela, en particulier sur les connexions avec des latences de rĂ©seau Ă©levĂ©es, peut entraĂźner un temps assez important requis pour le transfert de donnĂ©es.

J'ai tendance ici au fait que la vitesse de transfert de donnĂ©es ne dĂ©pend pas seulement de la taille des fichiers. Il est influencĂ© par les caractĂ©ristiques du fonctionnement du protocole TCP. Nous n'avons pas seulement besoin de rĂ©duire la taille des fichiers. Nous devons les rendre beaucoup plus petits, en les portant Ă  une taille qui leur permettra d'ĂȘtre transmis en moins de sĂ©quences de paquets.

Cela signifie, en thĂ©orie, que pour que l'algorithme de Brotli soit sensiblement plus efficace que Gzip, il doit ĂȘtre capable de compresser les donnĂ©es de maniĂšre beaucoup plus agressive. Ceci est nĂ©cessaire pour que les donnĂ©es puissent ĂȘtre transmises en moins de sĂ©quences de paquets que lors de l'utilisation de Gzip. Et je ne sais pas comment cet algorithme va se dĂ©velopper ...

Il convient de noter que le modĂšle ci-dessus est assez simplifiĂ©. Il y a de nombreux autres facteurs Ă  considĂ©rer. Par exemple - s'agit-il d'une connexion TCP nouvelle ou dĂ©jĂ  ouverte? La connexion est-elle utilisĂ©e pour autre chose? Les mĂ©canismes de priorisation du trafic serveur arrĂȘtent-ils et dĂ©marrent-ils le transfert de donnĂ©es? Les flux H / 2 ont-ils un accĂšs exclusif Ă  la bande passante? Cette section est une Ă©tude plus sĂ©rieuse. Cela devrait ĂȘtre considĂ©rĂ© comme un bon point de dĂ©part pour vos propres recherches. Mais pensez Ă  analyser en profondeur les donnĂ©es Ă  l'aide de quelque chose comme Wireshark, et lisez ce document, qui fournit une description plus approfondie des 14 premiers Ko «magiques».

Ce qui précÚde s'applique uniquement aux nouvelles connexions TCP. Les fichiers transférés via une connexion existante ne passeront pas par la procédure de démarrage lent. Cela nous amÚne à deux conclusions importantes:

  1. Je ne pense pas que cela vaille la peine d'ĂȘtre rĂ©pĂ©tĂ©, mais je le rĂ©pĂšte: les ressources statiques doivent ĂȘtre hĂ©bergĂ©es. C'est un excellent moyen d'Ă©viter les retards de dĂ©marrage lent, car en utilisant votre propre serveur, dĂ©jĂ  «rĂ©chauffé», les paquets quittant ce serveur ont accĂšs Ă  une bande passante plus large. Cette conclusion m'amĂšne Ă  la deuxiĂšme conclusion.
  2. , , . , . .

, ,,
11414
22842
35698
4112210
5224434
6448882
78961778
817923570
935847154
10716814322




20734003214680050

À la fin de la 10e session de transfert de donnĂ©es, la quantitĂ© de donnĂ©es transfĂ©rĂ©es en une seule session est de 7168 Ko, alors qu'au total, 14322 Ko de donnĂ©es ont dĂ©jĂ  Ă©tĂ© transfĂ©rĂ©es. C'est plus que suffisant pour un travail ordinaire sur Internet (c'est-Ă -dire pas pour visionner Game of Thrones). En fait, il arrive gĂ©nĂ©ralement que nous chargions la page Web entiĂšre et toutes ses ressources sans mĂȘme atteindre la limite de notre bande passante. En d'autres termes, l'utilisation d'un canal de communication Ă  fibre optique de 1 Gbit / s (c'est-Ă -dire 0,125 Go / s) ne rendra pas la navigation normale beaucoup plus rapide que l'utilisation d'une connexion plus lente, car la plupart de ce canal ne sera utilisĂ©. 

Et à la 20e session de transfert de données, nous transférons théoriquement 7,34 Go de données dans une séquence de paquets.

Et le monde réel?


Jusqu'à présent, nous nous sommes engagés dans des considérations théoriques. Et j'ai commencé à travailler sur ce matériel car j'aimerais connaßtre l'impact que Brotli peut avoir sur des sites réels.

Jusqu'à présent, les chiffres donnés ici ont montré l'énorme différence entre le manque de compression et l'utilisation de Gzip, et le fait que le gain de l'utilisation de Brotli, par rapport à Gzip, est assez modeste. Cela nous indique que la transition du manque de compression à l'utilisation de Gzip donnera une amélioration notable, tandis que la transition de Gzip à Brotli peut probablement sembler beaucoup moins impressionnante.

J'ai sélectionné, à titre d'exemples, plusieurs sites, guidés par les considérations suivantes:

  • Le site doit ĂȘtre relativement connu (il vaut mieux utiliser des sites comparables Ă  quelque chose).
  • Le site doit ĂȘtre adaptĂ© au test. C'est-Ă -dire qu'il devrait ĂȘtre d'une taille appropriĂ©e (il sera donc plus intĂ©ressant d'analyser ses matĂ©riaux pour la compression), et en mĂȘme temps, il ne devrait pas contenir principalement des matĂ©riaux qui ne sont pas compressĂ©s en utilisant Gzip / Brotli - comme, par exemple, YouTube.
  • Tous les sites de la collection ne doivent pas appartenir Ă  de grandes sociĂ©tĂ©s (cela vaut la peine d'analyser certains, disons, des sites «rĂ©guliers»).

Compte tenu de ces exigences, j'ai sélectionné les sites répertoriés ci-dessous et commencé les tests. Voici les sites que j'ai sélectionnés:


Je ne voulais pas compliquer les tests, j'ai donc opté pour les indicateurs suivants:

  • La quantitĂ© de donnĂ©es transfĂ©rĂ©es.
  • Premier temps de peinture contentieuse (FCP).

Ils ont été analysés dans les situations suivantes:

  • Manque de compression.
  • Utilisation de gzip.
  • Utilisation de brotli.

La mĂ©trique FCP semble proche du monde rĂ©el et suffisamment universelle pour ĂȘtre appliquĂ©e Ă  n'importe quel site, car elle vous permet d'Ă©valuer ce dont les gens ont besoin de sites Web - c'est-Ă -dire le contenu de ces sites. De plus, j'ai choisi cette mĂ©trique parce que Paul Calvano , une personne intelligente, a dĂ©clarĂ© ceci: "L'expĂ©rience me dit que l'utilisation de Brotli conduit Ă  une amĂ©lioration de FCP, en particulier lorsque les ressources CSS / JS critiques sont importantes" .

Essai


Je vais vous dire un sale secret. De nombreuses études sur les performances Web (pas toutes, mais beaucoup) ne sont pas basées sur des recherches sur l'amélioration des performances, mais sur des conclusions contraires - de la dégradation des performances. Par exemple, la BBC est beaucoup plus facile à affirmer qu '«ils perdent 10% des utilisateurs pour chaque seconde supplémentaire dont ils ont besoin pour charger leur site» que pour comprendre ce qui se passe grùce à une amélioration d'une seconde. Il est beaucoup plus facile de ralentir le site plutÎt que de l'accélérer, et vous avez le sentiment que c'est pourquoi de nombreuses personnes font si bien ce travail.

Compte tenu de cela, je n'ai pas essayé de télécharger d'abord les sites qui utilisent Gzip, puis, hors ligne, de compresser leur contenu à l'aide de Brotli. Au lieu de cela, j'ai trouvé des sites qui utilisent Brotli, puis j'ai désactivé la compression. Je suis passé de Brotli à Gzip, puis de Gzip à la non-compression, mesurant comment cela fonctionne sur le site.

Bien que je ne puisse pas, par exemple, me connecter au serveur Linkedin et dĂ©connecter Brotli, je peux simplement accĂ©der Ă  ce site Ă  partir d'un navigateur qui ne prend pas en charge Brotli. Bien que je ne puisse pas dĂ©sactiver la prise en charge de Brotli dans Chrome, je peux cacher au serveur le fait que mon navigateur prend en charge Brotli. Les navigateurs indiquent aux serveurs les algorithmes de compression qu'ils prennent en charge Ă  l'aide de l'en-tĂȘte de demandecontent-encoding. En utilisant Webpagetest, je peux personnaliser les en-tĂȘtes moi-mĂȘme. Donc, tout est trĂšs simple!


Les fonctionnalitĂ©s avancĂ©es de WebPageTest nous permettent de dĂ©finir des en-tĂȘtes de demande personnalisĂ©s.

Voici comment configurer le champ En-tĂȘtes personnalisĂ©s:

  • ArrĂȘt complet de la compression: accept-encoding: randomstring.
  • DĂ©sactivation Brötli, mais gzip: accept-encoding: gzip.
  • Pour utiliser Brotli si cette mĂ©thode de compression est supportĂ©e par le site (et Ă  condition qu'elle soit supportĂ©e par le navigateur): le champ reste vide.

Vous pouvez savoir si cela fonctionne comme prĂ©vu en vĂ©rifiant la prĂ©sence (ou l'absence) de l'en-tĂȘte content-encodingdans la rĂ©ponse du serveur.

résultats


Comme prĂ©vu, la transition du manque de compression vers Gzip signifiait une amĂ©lioration significative, mais la transition de Gzip Ă  Brotli ne semble pas aussi impressionnante. Les donnĂ©es brutes de mes expĂ©riences peuvent ĂȘtre trouvĂ©es ici . Voici les constatations qui m'intĂ©ressent le plus:

  • Gzip : 73%.
  • FCP Gzip : 23.305%.
  • Brotli Gzip: 5.767%.
  • FCP Brotli Gzip: 3.462%.

Ce sont toutes des valeurs médianes. En parlant de «tailles de matériaux», je veux dire uniquement HTML, CSS et JavaScript.

Grùce à l'utilisation de Gzip, la taille des fichiers a été réduite de 73% par rapport à leurs versions non compressées. Et l'utilisation de Brotli n'a permis de réduire la taille des fichiers que de 5,7% supplémentaires. Si nous parlons de FCP, grùce à Gzip, cet indicateur s'est amélioré de 23% par rapport au manque de compression, et Brotli n'y a ajouté que 3,5% supplémentaires.

Bien qu'il semble que de tels résultats renforcent la théorie, il existe plusieurs façons d'améliorer ces résultats. La premiÚre consiste à tester un nombre beaucoup plus grand de sites, j'aimerais en discuter deux de plus en détail.

Données sur les ressources propres et données provenant de sources externes


Lors de mes tests, j'ai dĂ©sactivĂ© Brotli partout, et pas seulement pour les serveurs qui stockent les donnĂ©es du site. Cela signifie que j'ai mesurĂ© non seulement les avantages que les sites retirent de l'utilisation de Brotli, mais, en termes de potentiel, les avantages que Brotli reçoit des sources externes utilisĂ©es par ces sites. Cela n'entre dans le champ de nos intĂ©rĂȘts que si des ressources tierces sont utilisĂ©es de la maniĂšre critique des sites sous enquĂȘte, mais cela mĂ©rite d'ĂȘtre rappelĂ©.

Niveaux de compression


En parlant de compression, nous discutons souvent des rĂ©sultats obtenus avec le meilleur scĂ©nario d'application de compression. À savoir - lorsque vous utilisez Gzip, nous avons Ă  l'esprit le 9e niveau de compression et lorsque vous utilisez Brotli - 11e niveau. Cependant, il est peu probable que le serveur Ă©tudiĂ© soit configurĂ© de la maniĂšre la plus optimale. Par exemple, Apache utilise la compression gzip de niveau 6, tandis que NGINX utilise uniquement la premiĂšre.

La désactivation de Brotli signifie que nous passons à l'option de secours, à Gzip, et compte tenu de la façon dont j'ai testé les sites, je ne pouvais pas changer une telle configuration de secours ou agir en quelque sorte. Je dis cela parce que les matériaux des deux sites du test ont augmenté de taille lorsque Brotli a été allumé. Cela m'indique que le niveau de compression Gzip était tel qu'il fournissait une compression plus forte que le niveau de compression Brotli.

Le choix d'un niveau de compression est un compromis. Tout le monde aimerait demander le niveau de compression le plus élevé et à ce propos, considérer le problÚme résolu. Mais une telle approche n'est pas pratique. Le fait est que le temps supplémentaire dont le serveur aura besoin pour effectuer dynamiquement cette compression est trÚs susceptible d'annuler les avantages d'un niveau de compression plus élevé. Pour faire face à ce problÚme, vous pouvez recourir aux éléments suivants:

  1. Vous pouvez utiliser un niveau de compression pragmatique qui offre le bon équilibre entre vitesse et efficacité pendant la compression dynamique des données.
  2. Vous pouvez télécharger des ressources statiques précompressées sur le serveur, dont le niveau de compression est supérieur à celui utilisé pour la compression dynamique. Dans ce cas, pour sélectionner le niveau de compression dynamique, vous pouvez utiliser l'idée décrite dans le premier paragraphe.

Sommaire


On a l'impression que, raisonnablement, on peut reconnaĂźtre l'insignifiance des avantages de Brotli sur Gzip.

Si l'activation de la prise en charge de Brotli est une question de mouvements de souris dans le panneau de configuration de votre CDN, alors vous devriez prendre Brotli et l'activer maintenant. La prise en charge de cet algorithme de compression est suffisamment large, les navigateurs qui ne prennent pas en charge Brotli passent facilement Ă  des mĂ©canismes de rechange, et mĂȘme une lĂ©gĂšre amĂ©lioration vaut mieux que rien.

Si possible, téléchargez des ressources statiques précompressées au niveau de compression maximal sur les serveurs. Et pour la compression dynamique, n'utilisez pas les niveaux de compression les plus élevés, mais pas les plus bas. Si vous utilisez NGINX, assurez-vous que vous n'utilisez pas le premier niveau de compression standard pour NGINX.

Cependant, si pour utiliser Brotli, vous pouvez avoir besoin de semaines de dĂ©veloppement, de test et de dĂ©ploiement, ne paniquez pas - assurez-vous simplement d'utiliser la compression Gzip pour tout ce qui peut ĂȘtre compressĂ© (cela inclut, en plus des ressources textuelles, des fichiers .ico et .ttf - s'ils sont bien sĂ»r utilisĂ©s dans votre projet).

Je suppose que la version courte de cet article peut ressembler Ă  ceci: si vous ne devez pas ou ne pouvez pas activer Brotli, vous ne perdez pas autant.

Chers lecteurs! Envisagez-vous d'utiliser Brotli?


All Articles