Lokale Dateien vs. CDN

13

Wenn die Ladezeit einer Website ein Problem darstellt, welches ist im Allgemeinen besser zu verwenden, wenn auf eine JavaScript- oder CSS-Datei verwiesen wird? Wäre die Verwendung eines CDN besser oder würde dies nur mehr HTTP-Anforderungen hinzufügen?

Omar A.
quelle

Antworten:

11

Das CDN sollte für alle statischen Dateien (.css / .js / images) verwendet werden.

Manchmal können jedoch Javascript- oder CSS-Dateien einen dynamischen Aspekt haben, z. B. dass sie eine eindeutige Benutzerzeichenfolge oder etwas Ähnliches enthalten. In dieser Situation müsste der CDN-Server bei jeder Anforderung, die den Zweck zunichte machen würde, den Ursprungsserver kontaktieren.

Wenn Ihr CSS und Javascript für alle Benutzer statisch ist, ist die Verwendung eines CDN der richtige Weg. Dies würde keine zusätzlichen HTTP-Anforderungen verursachen, da nur die CSS- und JS-Dateien vom CDN anstelle Ihres eigenen Webservers geladen würden (es sei denn, Sie verwenden Inline-Code). Anstatt dass ein Benutzerbrowser diese Anforderungen von Ihrem Server lädt, werden sie über das CDN geladen. Es gibt keine zusätzlichen Anforderungen, die Sie nur ändern, wohin diese Anforderungen gesendet werden sollen (wieder, solange Sie derzeit keinen Inline-Code verwenden).

Weitere Vorteile der Verwendung eines CDN wären, dass sich der CDN-Server höchstwahrscheinlich näher an Ihren Endbenutzern befindet als an Ihrem Ursprung, was sich positiv auf die Ladezeiten auswirkt. Die CDN-Server werden wahrscheinlich auch so eingerichtet, dass statische Inhalte viel schneller als Ihr Ursprungsserver bereitgestellt werden, indem der Webserver speziell für statische Inhalte bereitgestellt wird.

Analog
quelle
2
Wenn das CDN nicht näher ist und kein edns-client-subnetz verwendet, wird die Leistung überhaupt nicht verbessert. Dies ist kein "anderer Vorteil", da die Nähe zum Client und möglicherweise ein gewisser DOS-Schutz / Inhaltsoptimierung (obwohl Sie diese nicht erwähnen) die einzigen Vorteile sind.
Symcbean
Der Hauptvorteil bei der Verwendung eines CDN besteht darin, dass der Benutzer höchstwahrscheinlich bereits eine Website besucht hat, auf der dasselbe CDN verwendet wurde, und dass der Browser es bereits zwischengespeichert hat. Wenn der Benutzer auf Ihre Website gelangt, sendet der Browser keine Anfrage.
Offir Pe'er
3

Die Verwendung eines CDN im Vergleich zum herkömmlichen Webhosting für die Bereitstellung Ihrer statischen Dateien wie CSS, JS und Bilder wird häufig bevorzugt. Dies liegt daran, dass Ihre Website-Besucher nach dem Zwischenspeichern Ihrer Dateien auf den Edgeservern des CDN statischen Inhalt vom PoP (Nearest Point of Presence) anstelle des Ursprungsservers erhalten.

In den meisten Fällen verkürzt dies die Entfernung zwischen Client und Server und trägt somit zur Verbesserung der Ladezeiten bei, ohne dass zusätzliche HTTP-Anforderungen hinzugefügt werden müssen. Dies hilft auch in anderen Bereichen wie der Erhöhung der Redundanz, der Entlastung des Ursprungs usw.

CodyA
quelle
2

Verwenden Sie ein CDN, wenn Sie ein CDN benötigen. Wenn Ihr Benutzer global und über einen großen Bereich verteilt ist oder Sie viele solcher Inhalte haben, die Sie nicht auf Ihrem eigenen Server speichern möchten, ist ein CDN hilfreich. Weltweit kann der Zugriff auf Ihre Inhalte beschleunigt werden, wenn sich der Server näher am Benutzer befindet. Wenn Sie über viele statische Daten in GB oder Terabyte und eine hohe Last für den Zugriff auf diesen Inhalt verfügen, kann ein CDN dabei helfen.

Kleine, lokale Sites oder leicht geladene Sites benötigen solche Dinge jedoch selten, und ein CDN kann Ihre Einrichtung, Ihren Betrieb und Ihren Workflow nur noch komplizieren, z. B. Caching-Probleme.

Zu oft sehe ich Leute, die ein CDN verwenden, weil sie lesen, dass sie einen und keinen anderen Grund verwenden sollten.

rauben
quelle
Vielen Dank für den Hinweis, dass dies nicht immer erforderlich ist und unnötige Komplikationen mit sich bringt. In meinem Fall verwende ich einen Laravel-basierten CMS mit einem Backend-Assets-Combiner und speichere minimierte Dateien zwischen. Das Einrichten einer S3-CD, eines Schluckens und eines VC auf einigen JS-Dateien war Zeitverschwendung. Ich möchte mich lieber auf das DB-Caching und den richtigen Code für die Geschwindigkeit konzentrieren
Raja Khoury,
1

Die Verwendung eines CDN kann sowohl eine Belastung als auch ein Vorteil für eine Website sein, je nachdem, wie sie implementiert wurde.

Positive Punkte

  1. Statischer Inhalt, der näher am Endbenutzer gespeichert wird (schnellere Ladezeiten)
  2. Zusätzlicher Sub-Domains ( cdn1.example.com, cdn2.example.comusw.), dies hilft mit der inhärenten Grenze in Browsern , wo sie Datei - Downloads auf zwei gleichzeitige Dateien aus dem gleichen vollqualifizierten Domain - Namen zu einem beliebigen Zeitpunkt zu begrenzen. Mit anderen Worten, mit diesem Beispiel würden Sie auf HTML zugreifen www.example.comund währenddessen 2 Dateien von cdn1.example.com, 2 Dateien von cdn2.example.comund 2 Dateien von herunterladen , cdn3.example.comwobei alle drei CDN-Domänen auf den einen CDN-Dienst und die einzige Quelle zugreifen.
Chris Rutherfurd
quelle
Können Sie eine Referenz angeben, woher die "2 gleichzeitigen Dateien pro Domain" stammen? Es ist sicherlich pro Browser. Auch mit dem Aufkommen von HTTP / 2 wurde Domain-Sharding zu einem strittigen Thema.
Patrick Mevzek
-1

Das Hosting auf einem CDN hat viele Nachteile:

  1. Privatsphäre. Jedes Mal, wenn Sie zu einer Site gehen, die Skripte / Stylesheets / Schriftarten auf einem CDN hostet, weiß das CDN, dass Sie die Site besuchen.
  2. Offline-Zeit. In den letzten Wochen hatten Cloudflare usw. einige Stunden, in denen die Ladezeit einige Minuten lang sehr langsam oder sogar offline war. Im besten Fall sieht Ihre Website hässlich aus, wenn dies passiert, im schlimmsten Fall ist sie in einer Zeit, in der auch Ihre Konkurrenten Probleme haben, völlig unbrauchbar, und Sie könnten Kunden davon gewinnen, wenn Ihre Website online wäre und ihre nicht.
  3. Sicherheit. Das CDN kann kompromittiert werden (es ist schon einmal passiert). Im besten Fall verbreitet Ihr Server dann Malware, im schlimmsten Fall sind Ihre Daten jetzt öffentlich oder verschwunden.

Im Vergleich dazu sind die Vorteile unbedeutend:

  1. Weniger zu ladende Daten: Wir sprechen von etwa 100 KB Skripten pro Site. 1 Bild in geringer Qualität macht mehr aus. Wenn Sie keine Website haben, die mit 5.000.000 Besuchen pro Minute an ihre Grenzen stößt, macht dies keinen Unterschied. Und wenn ja, sollten Sie wahrscheinlich eine bessere Serverumgebung mit Load Balancer und mehr Webservern einrichten, da die Verwendung von CDNs Ihre Probleme nicht lösen wird.
  2. Schnellere Ladezeiten, da CDN-Server näher am Client liegen: In Zeiten, in denen die Latenz von EU nach USA für fast alle Verbindungen etwa 100 ms beträgt, wird das CSS in 50 ms oder 100 ms geladen.

Es gibt keinen Grund, ein CDN in einer Produktionsumgebung zu verwenden.

cari
quelle