it-swarm.com.de

Was ist der Vorteil, wenn statische Ressourcen auf einer separaten Domain gehostet werden?

Ich stelle fest, dass viele Websites ihre Ressourcen auf einer anderen als der Hauptwebsite hosten, z. StackExchange mit sstatic.net, Barnes & Noble mit imagesbn.com usw.

Ich verstehe, dass es Vorteile bringt, Ihre statischen Ressourcen auf einem separaten Host zu platzieren, möglicherweise mit einem effizienten Webserver für statische Dateien wie nginx, der den Hauptserver für die Bereitstellung dynamischer Inhalte frei macht. Ebenso ist das Auslagern auf ein freigegebenes CDN wie Cloudfront Akamai logisch.

Was ist der Vorteil, wenn Sie ansonsten eine separate Domain verwenden? Warum sstatic.net statt static.stackexchange.com?

pdate: Mehrere Antworten verfehlen die Kernfrage. Ich verstehe, dass die Aufteilung auf mehrere Hosts von Vorteil ist - parallele Downloads, schlankere Webserver usw. Was jedoch schwerer zu fassen ist, ist, warum mehrere Domänen . Warum sstatic.net statt static.stackexchange.com als Host für gemeinsam genutzte Ressourcen? Bisher hat sich nur eine Antwort damit befasst.

23

Auf vielen Websites sind sehr viele Cookies gesetzt. Diese Cookies haben den Zweck, einen bestimmten Status zu unterstützen.

Indem Sie die statischen (zustandslosen) Ressourcen in einer völlig anderen Domäne ablegen, können Sie die Größe der http-Anforderungen reduzieren. In einigen Fällen gibt es so viele Cookies, dass für eine einzelne http-Anforderung zwei TCP Pakete für die Übertragung benötigt werden. Eine separate Domain ist eine der Möglichkeiten, die Anzahl der Pakete zu reduzieren, um die verschiedenen Teile einer Seite anzufordern.

Andere Methoden mit demselben Ziel sind das Zusammenführen vieler Bilder in einem einzelnen Sprite und das Zusammenführen aller Javascript-Dateien in einer einzelnen Datei.

21
Niels Basjes

Neben der Verwendung von CDNs bedeutet die Verwendung separater Domänen für statische Daten auch Folgendes:

  1. Sie können einen einfachen Webserver verwenden, der nicht alle Module/Erweiterungen laden muss, die Ihr Webserver für dynamische Inhalte bei jeder einzelnen Anforderung laden muss. Wenn nicht jedes Verzeichnis im URI-Pfad durchsucht werden muss, um .htaccess-Dateien zu lesen, erhöht sich auch die Anzahl der gleichzeitigen Anforderungen, die der Server verarbeiten kann.

  2. Durch Hinzufügen einer zusätzlichen Unterdomäne erhöhen Sie die Anzahl der parallelen Downloads, die der Browser ausführen kann.

  3. Bei ordnungsgemäßer Einrichtung (z. B. wird Ihre Website auf www.example.com anstelle von example.com gehostet) können Sie auch eine Subdomain ohne Cookies nutzen, um den Datenverkehr und die Roundtrip-Zeiten zu verringern.

Der einzige Nachteil ist, dass Sie bei Verwendung von SSL-Sitzungen ein signiertes Zertifikat und eine separate statische IP-Adresse für die zusätzliche (n) Domain (s) benötigen. Die Vorteile überwiegen jedoch in den meisten Fällen.

Bearbeiten:

Entschuldigung, ich habe Ihre Frage falsch verstanden. Wenn Sie fragen, warum manche Benutzer separate SLDs verwenden, wird dies durch die Klammer auf # 3 beantwortet. Es ist auch erklärt auf sstatic.net :

Wenn Ihre Domain www.example.org ist, können Sie Ihre statischen Komponenten auf static.example.org hosten. Wenn Sie jedoch auf der Top-Level-Domain example.org im Gegensatz zu www.example.org bereits Cookies gesetzt haben, enthalten alle Anfragen an static.example.org diese Cookies . In diesem Fall können Sie eine ganz neue Domain kaufen, Ihre statischen Komponenten dort hosten und diese Domain frei von Cookies halten. Yahoo! Verwendet yimg.com, YouTube verwendet ytimg.com, Amazon verwendet images-Amazon.com und so weiter.

Aber inkarnate erwähnt auch einen guten Punkt in Bezug auf die Verwendung einer separaten generischen SLD anstelle einer Unterdomäne einer vorhandenen SLD, wenn Sie ein großes Netzwerk von Sites betreiben, die bestimmte Ressourcen gemeinsam nutzen.

Wie Niels Basjes ausführt, besteht ein Grund für das Eliminieren von Cookies darin, die Anzahl der für die Ausführung einer Anfrage verwendeten Pakete zu minimieren. Ich denke, die YSlow-Richtlinien besagen, dass die meisten Netzwerke eine maximale Paketgröße von 1500 Bytes haben. Wenn Sie diese also unter 1500 Bytes halten, würde sich der Aufwand für TCP verringern. Dies zeigt auch einen weiteren Vorteil der Verwendung von sstatic.net anstelle von static.webmasters.stackexchange.com.

23
Lèse majesté

Lèse majesté ging auf die Hauptpunkte ein, aber um es weiter auszudehnen, möchte ich hinzufügen, dass eine einzige Domain für alle verschiedenen Stack Exchange-Sites bedeutet, dass jemand, der sie durchsucht, statische Inhalte wie JavaScripts nur einmal herunterlädt. Wenn Sie beispielsweise zum Superuser wechseln, verwendet ein Benutzer den zwischengespeicherten Inhalt, da er sich an derselben Stelle befindet.

Es gibt einige weitere nützliche Informationen zu Yahoo und Google .

5
John C

Der Hauptgrund sind Cookies. Was Niels in seiner Antwort vorschlug, ist nur eine geringe Konsequenz und nicht der wahre Grund. Ohne Cookies ist die Anforderungsgröße kleiner, sodass Bandbreite gespart wird.

Der eigentliche Unterschied liegt jedoch im Browser-Cache. Da der Inhalt statisch ist (d. H. Sich nicht ändert), können Browser ihn auf der lokalen Festplatte zwischenspeichern und vermeiden, dass die Datei jedes Mal aus dem Internet geladen wird. Anstelle der gesamten Datei sendet der Webserver lediglich eine Antwort 304, was bedeutet, dass der Inhalt nicht geändert wurde.

Wenn die Site Cookies verwendet, sind Browser der Ansicht, dass der Inhalt der Datei für verschiedene Benutzer unterschiedlich sein kann, sodass diese Dateien nicht zwischengespeichert werden. Durch die Bereitstellung der Datei aus einer Domäne ohne Cookies wird sichergestellt, dass das Browser-Caching ordnungsgemäß funktioniert.

Dies ist der Hauptgrund, da dadurch die Ladezeiten verkürzt und die Bandbreite erheblich reduziert wird.

5
Milan Babuškov

Ältere Browser sind auf nur zwei parallele Downloads pro Hostname beschränkt.

Das Aufteilen der Elemente einer Webseite auf mehrere Domänen wird als Domain-Sharding bezeichnet. Auf diese Weise können mehr Ressourcen parallel heruntergeladen werden, wodurch sich die Ladezeiten für die gesamte Seite verkürzen.

Die optimale Anzahl von Domänen, die geteilt werden sollen, beträgt 2-4. Nach 4 Domänen verringert sich die Antwortzeit. .

3
mvark