nodejs expressjs gzip json content
-
28-10-2019 - |
Question
J'utilise express 'res.end, etc. pour servir json dans le cadre de mon api de repos.
Google pagespeed me dit de le gzip.
Cependant selon ce fil:
cela ne semble pas être une bonne idée.Après tout ce contenu est dynamique et inaccessible, donc le gzip avant chaque demande ne semble pas être un avantage net.
Ai-je raison?Ou devrais-je poursuivre gzip, merci.
Pour être clair: le contenu statique (css, js) est déjà gzippé.
La solution
Gzip peut faire une grande différence sur les performances de votre site, en particulier sur les connexions lentes / mobiles, car il réduit la quantité de données (et la quantité de paquets) que le navigateur doit recevoir.
Je ne connais pas l'implémentation spécifique dans Express, mais l'utilisation de Gzip est un compromis entre le temps CPU du serveur et la bande passante. Vous consommez (légèrement) plus de CPU sur le serveur pour compresser votre contenu, mais vous réduisez l'utilisation de la bande passante, le temps de chargement des pages et le temps dont dispose votre serveur Web pour garder un socket ouvert tout en envoyant des données au navigateur. Tous les guides de bonnes pratiques et logiciels d'analyse de la vitesse des pages (tels que Google Page Speed, Web Page Test, etc.) suggèrent fortement d'utiliser Gzip, donc je suppose que l'effort en vaut la peine.
En ce qui concerne la façon d'y parvenir dans Express, j'utilise personnellement Nginx pour envoyer par proxy toutes les demandes à mon application Express (et servir du contenu statique), j'ai donc simplement configuré Nginx pour gzip HTML, CSS, Javascript et certains autres types de ressources avant d'envoyer les au client.
Quelques références:
- Meilleures pratiques Yahoo Performance
- Google "Rendons le Web plus vite"
- "Dois-je utiliser Gzip" sur les webmasters professionnels (voir la réponse de Jeff Atwood pour inconvénients possibles)