Qual è il vantaggio di ospitare risorse statiche su un dominio separato?


24

Ho notato che molti siti ospitano le loro risorse su un dominio separato dal sito principale, ad esempio StackExchange utilizzando sstatic.net, Barnes & Noble utilizzando imagesbn.com, ecc.

Comprendo che ci sono vantaggi nel mettere le tue risorse statiche su un host separato, possibilmente con un efficiente server web di file statici come nginx, liberando il server principale per concentrarsi sul servizio di contenuti dinamici. Allo stesso modo, l'outsourcing a una CDN condivisa come il cloudfront Akamai è logico.

Tuttavia, qual è il vantaggio derivante dall'utilizzo di un dominio separato? Perché sstatic.net invece di static.stackexchange.com?

Aggiornamento : diverse risposte mancano alla domanda principale. Comprendo che vi è un vantaggio nella suddivisione tra più host: download paralleli, server Web più sottile, ecc. Ma ciò che è più sfuggente è il motivo per cui più domini . Perché sstatic.net anziché static.stackexchange.com come host per risorse condivise? Finora, solo una risposta ha risposto a questo.

Risposte:


22

Molti siti hanno un sacco di cookie impostati, questi cookie hanno lo scopo di supportare un qualche tipo di stato.

Inserendo le risorse statiche (stateless) su un dominio completamente diverso, è possibile ridurre la dimensione delle richieste http. In alcuni casi ci sono così tanti cookie che una singola richiesta http richiede la trasmissione di due pacchetti TCP. Quindi avere un dominio separato è uno dei modi per ridurre il numero di pacchetti per richiedere le varie parti di una pagina.

Altri metodi con lo stesso obiettivo sono l'unione di molte immagini in un unico sprite e l'unione di tutti i Javascript in un singolo file.


23

A parte l'uso di CDN, l'utilizzo di domini separati per dati statici significa anche:

  1. È possibile utilizzare un server Web leggero che non deve caricare tutti i moduli / estensioni che il server Web dei contenuti dinamici deve caricare su ogni singola richiesta. Non dover scansionare ogni directory nel percorso URI per leggere i file .htaccess aumenta anche il numero di richieste simultanee che il server può gestire.

  2. L'aggiunta di un sottodominio aggiuntivo significa aumentare il numero di download paralleli che il browser può eseguire.

  3. Se impostato correttamente (ad esempio il tuo sito è ospitato www.example.cominvece di example.com), puoi anche usufruire di un sottodominio senza cucina, riducendo il traffico e i tempi di andata e ritorno.

L'unico aspetto negativo è che, se si utilizzano sessioni SSL, è necessario un certificato firmato e un IP statico separato per i domini aggiuntivi. Ma i benefici superano questo piccolo inconveniente nella maggior parte dei casi.

Modificare:

Mi dispiace, ho letto male la tua domanda. Se ti stai chiedendo perché alcune persone usano SLD separati, la risposta tra parentesi è il n. 3. È anche spiegato su sstatic.net :

Se il tuo dominio è www.example.org, puoi ospitare i tuoi componenti statici su static.example.org. Tuttavia, se hai già impostato i cookie sul dominio di livello superiore example.org anziché su www.example.org, tutte le richieste a static.example.org includeranno quei cookie. In questo caso, puoi acquistare un dominio completamente nuovo, ospitare lì i tuoi componenti statici e mantenere questo dominio privo di cookie. Yahoo! usa yimg.com, YouTube usa ytimg.com, Amazon usa images-amazon.com e così via.

Ma incarnato menziona anche un buon punto sull'uso di un SLD generico separato invece di un sottodominio di un SLD esistente quando si esegue una grande rete di siti che condividono determinate risorse.

Infine, come sottolinea Niels Basjes, parte del motivo dell'eliminazione dei cookie è di ridurre al minimo il numero di pacchetti utilizzati per eseguire una richiesta. Penso che le linee guida di YSlow affermino che la maggior parte delle reti ha una dimensione massima del pacchetto di 1500 byte, quindi mantenerlo sotto i 1500 byte ridurrebbe il sovraccarico TCP. Ciò dimostra anche un altro vantaggio dell'utilizzo sstatic.netanziché static.webmasters.stackexchange.com.


Perché avresti bisogno di un IP separato?
Mihalis Bagos,

2
Perché la crittografia viene tradizionalmente applicata prima dell'invio del nome di dominio. SNI , che allevia questo, non è ancora universalmente supportato: escluderesti IE su XP.
phihag,

@Mihalis: solo per aggiungere al commento di phihag, escluderesti anche Windows Mobile 6.5 e versioni precedenti, Android 2.xe versioni precedenti, Blackberry Browser, Safari su XP ... L'elenco completo dei software supportati / non supportati è disponibile qui : en.wikipedia.org/wiki/Server_Name_Indication#No_support
Lèse majesté

3
Non sto chiedendo perché utilizzare più sottodomini - questo ha senso per me. Sto chiedendo domini completi separati. Perché sstatic.net anziché static.stackexchange.com?
Michael Ekstrand,

5

Lèse majesté ha trattato i punti principali, ma per espandere ulteriormente aggiungerei che avere un singolo dominio per tutti i vari siti di Stack Exchange significa che una persona che li naviga scaricherà contenuti statici come JavaScripts una sola volta. Andando su Superuser, ad esempio, un utente utilizzerà il contenuto memorizzato nella cache poiché proviene dallo stesso posto.

Ci sono alcune informazioni più utili su Yahoo e Google al riguardo.


5

Il motivo principale sono i cookie. Ciò che Niels ha suggerito nella sua risposta è solo una conseguenza minore, e non la vera ragione. Senza i cookie, la dimensione della richiesta è inferiore, quindi sta risparmiando un po 'di larghezza di banda.

Tuttavia, la vera differenza deriva dalla cache del browser. Poiché il contenuto è statico (cioè non cambia), i browser possono memorizzarlo nella cache sul disco rigido locale ed evitare di caricare il file da Internet ogni volta. Invece di tutto il file, il server Web invia solo una risposta 304, il che significa che il contenuto non è cambiato.

Quando il sito utilizza i cookie, i browser considerano che il contenuto del file potrebbe essere diverso per utenti diversi, quindi non memorizzano nella cache quei file. La pubblicazione del file da un dominio senza cookie garantisce il corretto funzionamento della memorizzazione nella cache del browser.

Questo è il motivo principale in quanto migliora i tempi di caricamento e riduce significativamente la larghezza di banda.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.