Warum statische Dateien (CSS, Bilder, JavaScript, ECC) in eine Unterdomäne einfügen?

29

Warum fügen so viele große und kleine Websites statische Dateien (CSS, Bilder, JavaScript, ECC) in eine Subdomain wie media.example.comoder ein s2.static.example.com?

Was sind die Vorteile? Warum nicht einfach ein Verzeichnis wie example.com/media/?

xRobot
quelle

Antworten:

24

Ich sehe mindestens drei mögliche (gute) Gründe:

  • Verwenden Sie einen anderen Computer, um den statischen Inhalt bereitzustellen
    • Einschließlich einiger CDN
  • Verwenden Sie einen anderen Webserver, um den statischen Inhalt bereitzustellen
    • Etwas leichter und schneller
    • Es ist kein vollständiger PHP / .NET / JAVA-Server erforderlich, um statische Inhalte bereitzustellen!
  • Die Verwendung eines anderen Domainnamens bedeutet, dass Sie die Cookies, die in der Hauptdomäne verwendet werden, nicht verwenden können

Das ist, was auf StackOverflow gemacht wird, wenn ich mich richtig erinnere

Pascal MARTIN
quelle
15

Der Hauptgrund, denke ich, ist für Cookies.

Cookies werden zusammen mit jeder Anfrage gesendet. Nehmen wir an, Sie haben 2 KB Cookie-Daten und laden 20 Bilder auf eine Seite.

Das sind zusätzliche 40 KB an Daten, multiplizieren Sie diese mit der Anzahl der Seitenaufrufe in einem Monat, und Sie werden überrascht sein, wie viel Bandbreite Sie in etwas Nutzlosem verloren haben und die Bandbreite nicht frei ist ...

Außerdem werden Cookies, die auf der Top-Level-Domain gesetzt sind, über alle Anfragen an eine Subdomain gesendet. In diesen Fällen wird sogar empfohlen, eine neue Domain zu kaufen, um die statischen Komponenten dort in einer cookiefreien Domain zu hosten .

Zum Beispiel verwendet StackOverflow sstatic.net, Yahoo yimg.com, YouTube ytimg.com, Amazon images-amazon.comusw.

Schauen Sie sich das an:

Zistoloen
quelle
8

Um einige der obigen Antworten zu ergänzen: Einige Webbrowser können nur zwei Dateien gleichzeitig von einer Domain herunterladen.

Statischen Inhalt von einem anderen Hostnamen (oder Name - zum Beispiel a.domain, b.domain, c.domain) diese älteren Browser mehr Dateien parallel herunterladen kann.

Zistoloen
quelle
2

... verwenden Sie cookiefreie Domains für Komponenten.

Wenn der Browser ein statisches Bild anfordert und zusammen mit der Anforderung Cookies sendet, kann der Server diese Cookies nicht verwenden. Aus diesem Grund verursachen sie nur ohne triftigen Grund Netzwerkverkehr. Sie sollten sicherstellen, dass statische Komponenten mit cookiefreien Anforderungen angefordert werden. Erstellen Sie eine Unterdomäne und hosten Sie dort alle statischen Komponenten.

Diese Empfehlung stammt aus den Best Practices von Yahoo zur Beschleunigung Ihrer Website .

M4N
quelle
0

Nur weil Ihre http-Anfrage kleiner ist und der Server schnell läuft und die angeforderte Datei in sehr kurzer Zeit übergeben wird, führt dies letztendlich zum schnellsten Laden der Seite

Saurabh Sharma
quelle
Dies fügt nichts hinzu, was andere Antworten noch nicht sagen. Sie sagen nicht einmal, warum die Anfrage kleiner ist (weil es keine Cookies gibt), daher ist diese Antwort schlechter als viele andere.
Stephen Ostermiller