Fichiers locaux vs CDN

13

Si le temps de chargement d'un site Web est un problème, lequel est généralement préférable d'utiliser lors du référencement d'un fichier JavaScript ou CSS? L'utilisation d'un CDN serait-elle meilleure ou cela ajouterait-il simplement plus de requêtes HTTP?

Omar A.
la source

Réponses:

11

Le CDN doit être utilisé pour tous les fichiers statiques (.css / .js / images).

Parfois, cependant, les fichiers javascript ou css peuvent avoir un aspect dynamique, par exemple, cela pourrait inclure une chaîne utilisateur unique ou quelque chose de ce genre. Dans cette situation, le serveur CDN devrait contacter le serveur d'origine à chaque demande, ce qui irait à l'encontre de l'objectif.

Si votre CSS et Javascript sont statiques pour tous les utilisateurs, l'utilisation d'un CDN est la bonne solution. Cela ne provoquerait aucune demande HTTP supplémentaire car il chargerait uniquement les fichiers css et js à partir du CDN au lieu de votre propre serveur Web (sauf si vous utilisez du code en ligne). Ainsi, au lieu d'un navigateur d'utilisateurs chargeant ces demandes à partir de votre serveur, elles seraient chargées via le CDN, il n'y a pas de demandes supplémentaires, vous changez simplement où envoyer ces demandes (encore une fois tant que vous n'utilisez pas actuellement de code en ligne).

D'autres avantages de l'utilisation d'un CDN seraient que le serveur CDN serait très probablement situé plus près de vos utilisateurs finaux que de votre origine, ce qui bénéficiera des temps de chargement. Les serveurs CDN sont également probablement configurés pour servir du contenu statique beaucoup plus rapidement que votre serveur d'origine en répondant spécifiquement au serveur Web pour le contenu statique.

Analogique
la source
2
Si le CDN n'est pas plus proche et n'utilise pas edns-client-subnet, cela n'améliorera pas du tout les performances. Ce n'est pas un "autre avantage", étant plus proche du client, offrant éventuellement une certaine protection DOS / optimisation du contenu (bien que vous ne les mentionniez pas) sont les seuls avantages.
symcbean
Le principal avantage de l'utilisation d'un CDN est le fait que l'utilisateur a probablement déjà visité un site Web qui a utilisé le même CDN et que le navigateur l'a déjà mis en cache.Ainsi, lorsque l'utilisateur arrive sur votre site Web, le navigateur n'envoie aucune demande.
Offir Pe'er
3

L'utilisation d'un hébergement Web CDN vs traditionnel pour la livraison de vos fichiers statiques tels que CSS, JS et images est généralement préférée. En effet, une fois vos fichiers mis en cache sur les serveurs périphériques du CDN, les visiteurs de votre site recevront du contenu statique à partir du point de présence le plus proche (PoP) au lieu du serveur d'origine.

Dans la majorité des cas, cela raccourcit la distance entre le client et le serveur et contribue ainsi à améliorer les temps de chargement sans ajouter de requêtes HTTP supplémentaires. Cela aide également dans d'autres domaines tels que l'augmentation de la redondance, la suppression d'une charge de l'origine, etc.

CodyA
la source
2

Utilisez un CDN si vous avez besoin d'un CDN. Si votre utilisateur est global et réparti sur une grande zone, ou si vous avez beaucoup de contenu que vous ne souhaitez pas stocker sur votre propre serveur, c'est quand un CDN est utile. Globalement, il peut accélérer l'accès à votre contenu si le serveur est plus proche de l'utilisateur. Si vous avez plusieurs Go ou téraoctets de données statiques et une lourde charge d'accès à ce contenu, un CDN peut vous aider.

Cependant, les petits sites locaux ou les sites légèrement chargés ont rarement besoin de telles choses et un CDN ne peut qu'ajouter une complication supplémentaire à votre configuration, opération et flux de travail, tels que des problèmes de mise en cache.

Trop souvent, je vois des gens utiliser un CDN parce qu'ils lisent qu'ils devraient utiliser une seule et aucune autre raison.

Rob
la source
Merci d'avoir souligné que ce n'est pas toujours nécessaire et ajoute en effet des complications inutiles. Dans mon cas, j'utilise un cms basé sur laravel avec un combinateur d'actifs backend et met en cache des fichiers minifichiers. La configuration d'un cdn S3, gulp et vc sur quelques fichiers js était une perte de temps. Je préfère me concentrer sur la mise en cache de la base de données et le code approprié pour la vitesse
Raja Khoury
1

L'utilisation d'un CDN peut être à la fois un fardeau et un avantage pour un site Web, tout dépendant de la façon dont il a été mis en œuvre.

Points positifs

  1. Contenu statique stocké plus près de l'utilisateur final (temps de chargement plus rapides)
  2. Sous-domaines supplémentaires ( cdn1.example.com, cdn2.example.com, etc.), cette aide avec la limite inhérente aux navigateurs où ils limitent les téléchargements de fichiers à deux fichiers simultanément à partir du même nom de domaine complet à un moment donné . En d'autres termes, en utilisant cet exemple, vous accéderez à HTML à partir de www.example.comet tout en téléchargeant 2 fichiers à partir de cdn1.example.com, 2 fichiers à partir de cdn2.example.comet 2 fichiers à partir des cdn3.example.comtrois domaines CDN accédant au service et à la source CDN.
Chris Rutherfurd
la source
Pouvez-vous donner une référence d'où proviennent les "2 fichiers simultanés par domaine"? C'est certainement par navigateur. De plus, avec l'avènement de HTTP / 2, le partage de domaine est devenu un problème théorique.
Patrick Mevzek
0

L'hébergement sur un CDN présente de nombreux inconvénients:

  1. Intimité. Chaque fois que vous allez sur un site qui héberge des scripts / feuilles de style / polices sur un CDN, le CDN sait que vous visitez le site.
  2. Temps hors ligne. Au cours des dernières semaines, cloudflare etc. a eu quelques heures, où leur temps de chargement était très lent ou même hors ligne pendant quelques minutes. Dans le meilleur des cas, votre site a l'air moche, lorsque cela se produit, dans le pire des cas, il est complètement inutilisable à une époque où vos concurrents ont également des problèmes et vous pourriez en obtenir des clients si votre site était en ligne et le leur pas.
  3. Sécurité. Le CDN peut être compromis (c'est arrivé avant). Dans le meilleur des cas, votre serveur propage alors des logiciels malveillants, dans le pire des cas, vos données sont désormais publiques ou disparues.

Par rapport à cela, les avantages sont insignifiants:

  1. Moins de données à charger: nous parlons d'environ 100 Ko de scripts par site. 1 image de faible qualité représente plus que cela. Si vous n'avez pas de site Web à la limite de 5.000.000 visites par minute, cela ne fera aucune différence. Et si, vous devriez probablement configurer un meilleur environnement de serveur avec un équilibreur de charge et plus de serveurs Web, car l'utilisation de CDN ne résoudra pas vos problèmes.
  2. Des temps de chargement plus rapides, car les serveurs CDN sont plus proches du client: parfois, lorsque la latence de l'UE aux États-Unis est d'environ 100 ms pour presque toutes les connexions, le CSS est chargé en 50 ms ou 100 ms.

Il n'y a aucune raison d'utiliser un CDN dans un environnement de production.

cari
la source