File locali vs. CDN


13

Se il tempo di caricamento di un sito Web è un problema, che è generalmente meglio utilizzare quando si fa riferimento a un file JavaScript o CSS? Usare una CDN sarebbe meglio o aggiungerebbe semplicemente più richieste HTTP?

Risposte:


11

Il CDN dovrebbe essere usato per tutti i file statici (.css / .js / images).

A volte, tuttavia, i file javascript o css possono avere un aspetto dinamico, ad esempio includendo una stringa utente univoca o qualcosa del genere. In questa situazione il server CDN dovrebbe contattare il server di origine per ogni richiesta che vanificherebbe lo scopo.

Se CSS e Javascript sono statici per tutti gli utenti, utilizzare una CDN è la strada giusta da percorrere. Ciò non causerebbe ulteriori richieste HTTP perché caricherà solo i file css e js dal CDN anziché dal proprio server Web (a meno che non si stia utilizzando un codice inline). Quindi invece di un browser degli utenti che carica queste richieste dal tuo server verrebbero caricate tramite la rete CDN, non ci sono richieste aggiuntive che stai cambiando solo dove inviare queste richieste (di nuovo finché non stai usando un codice in linea).

Altri vantaggi derivanti dall'uso di una rete CDN sarebbero che il server CDN si troverebbe molto probabilmente più vicino agli utenti finali rispetto all'origine, il che andrà a vantaggio dei tempi di caricamento. È probabile che anche i server CDN siano configurati per servire contenuti statici molto più velocemente del server di origine, fornendo specificamente al server Web contenuti statici.


2
Se la CDN non è più vicina e non utilizza la sottorete edns-client non migliorerà affatto le prestazioni. Questo non è un "altro vantaggio", essendo più vicini al client, probabilmente fornendo una certa protezione DOS / ottimizzazione del contenuto (anche se non li menzioni) sono gli unici vantaggi.
symcbean,

Il vantaggio principale dell'utilizzo di una CDN è il fatto che molto probabilmente l'utente ha già visitato un sito Web che utilizzava la stessa CDN e il browser lo aveva già memorizzato nella cache, quindi quando l'utente arriva al tuo sito Web il browser non invierà alcuna richiesta.
Offir Pe'er

3

L'utilizzo di un CDN rispetto all'hosting Web tradizionale per la consegna di file statici come CSS, JS e immagini è comunemente preferito. Questo perché una volta che i file sono memorizzati nella cache sui server perimetrali della CDN, i visitatori del sito riceveranno contenuto statico dal punto di presenza più vicino (PoP) anziché dal server di origine.

Nella maggior parte dei casi, ciò accorcia la distanza tra il client e il server e quindi aiuta a migliorare i tempi di caricamento senza aggiungere ulteriori richieste HTTP. Questo aiuta anche in altre aree come aumentare la ridondanza, togliere il carico dall'origine, ecc.


2

Utilizzare un CDN se è necessario un CDN. Se il tuo utente è globale e si estende su una vasta area, o hai un sacco di tali contenuti che non vuoi archiviare sul tuo server, è quando una CDN è utile. A livello globale, può accelerare l'accesso ai tuoi contenuti se il server è più vicino all'utente. Se hai molti GB o Terabyte di dati statici e un carico pesante per l'accesso a quel contenuto, una CDN può aiutarti.

Tuttavia, i siti locali di piccole dimensioni o i siti leggermente caricati raramente necessitano di tali cose e una CDN può solo aggiungere un'altra complicazione al tuo set up, operazione e flusso di lavoro, come i problemi di memorizzazione nella cache.

Troppo spesso vedo che le persone usano un CDN perché leggono che dovrebbero usare uno e nessun altro motivo.


Grazie per aver sottolineato che non è sempre necessario e anzi aggiunge complicazioni inutili. Nel mio caso sto usando un cms basato su laravel con un combinatore di risorse di back-end e memorizza nella cache file minifed impostare un cdn S3, gulp e vc su pochi file js era una perdita di tempo. Preferirei concentrarmi sulla memorizzazione nella cache del DB e sul codice corretto per la velocità
Raja Khoury,

1

L'uso di una CDN può essere sia un onere che un vantaggio per un sito Web, tutto a seconda di come è stato implementato.

Punti positivi

  1. Contenuto statico memorizzato più vicino all'utente finale (tempi di caricamento più rapidi)
  2. Ulteriori sottodomini ( cdn1.example.com, cdn2.example.com, ecc), questo aiuta con il limite insito nei browser che limitano i download di file a due file contemporaneamente dallo stesso nome di dominio completo in qualsiasi momento uno. In altre parole, usando questo esempio si accede a HTML da www.example.come nel frattempo si scaricano 2 file da cdn1.example.com, 2 file da cdn2.example.come 2 file da cdn3.example.comcon tutti e tre i domini CDN che accedono al servizio CDN e all'origine.

Puoi fornire un riferimento da dove provengono i "2 file simultanei per dominio"? È certamente per browser. Anche con l'avvento di HTTP / 2, lo sharding del dominio è diventato un problema controverso.
Patrick Mevzek,

0

L'hosting su una CDN presenta molti svantaggi:

  1. Privacy. Ogni volta che vai su un sito che ospita script / fogli di stile / caratteri su una rete CDN, la rete CDN è a conoscenza della tua visita al sito.
  2. Tempo offline. Nelle ultime settimane cloudflare ecc ha avuto alcune ore, in cui il tempo di caricamento è stato molto lento o addirittura offline per alcuni minuti. Nel migliore dei casi il tuo sito sembra brutto, quando ciò accade, nel peggiore dei casi è completamente inutilizzabile in un momento, in cui anche i tuoi concorrenti hanno problemi e potresti ottenere clienti se il tuo sito fosse online e loro no.
  3. Sicurezza. La CDN può essere compromessa (è successo prima). Nel migliore dei casi il tuo server diffonde malware, nel peggiore dei casi i tuoi dati sono ora pubblici o spariti.

Rispetto a ciò i vantaggi sono insignificanti:

  1. Meno dati da caricare: parliamo di circa 100kb di script per sito. 1 immagine in bassa qualità rappresenta di più. Se non si dispone di un sito Web al limite con circa 5.000.000 di visite al minuto, non farà alcuna differenza. E se, probabilmente dovresti impostare un ambiente server migliore con bilanciamento del carico e più server web, perché l'uso di CDN non risolverà i tuoi problemi.
  2. Tempi di caricamento più rapidi, poiché i server CDN sono più vicini al client: in tempi in cui la latenza dall'UE agli Stati Uniti è di circa 100 ms per quasi tutte le connessioni, il CSS viene caricato in 50ms o 100ms.

C'è un motivo zero per l'utilizzo di una CDN in un ambiente di produzione.

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.