Il server Web non invia "l'intero sito Web", ma i documenti richiesti dai browser.
Ad esempio quando accedi https://www.google.com/ il browser interroga il server per il documento https://www.google.com/
. Il server elabora la richiesta e restituisce del codice HTML.
Quindi il browser controlla ciò che il server ha inviato. In questo caso è una pagina Web HTML, quindi analizza il documento e cerca script, fogli di stile, immagini, font, ecc. Di riferimento.
In questa fase il browser ha finito di scaricare quel documento, ma non ha ancora scaricato i documenti di riferimento. Può scegliere di farlo o saltarli. I normali browser cercheranno di scaricare tutti i documenti di riferimento per la migliore esperienza di visualizzazione. Se hai un blocco annunci (come Adblock) o un plug-in per la privacy (Ghostery, NoScript), potrebbe bloccare anche alcune risorse.
Quindi il browser scarica i documenti di riferimento uno per uno, ogni volta chiedendo esplicitamente al server una singola risorsa. Nel nostro esempio di Google il browser troverà i seguenti riferimenti, solo per citarne alcuni:
(i file effettivi potrebbero essere diversi per utenti, browser e sessioni diversi e potrebbero cambiare nel tempo)
I browser basati su testo non scaricano immagini, file Flash, video HTML5 ecc. In modo da scaricare meno dati.
@NathanOsman fa un buon punto nei commenti: a volte le immagini di piccole dimensioni sono incorporate direttamente nei documenti HTML e in quei casi il loro download non può essere evitato. Questo è un altro trucco usato per ridurre il numero di richieste. Loro sono molto piccolo, tuttavia, altrimenti il sovraccarico del file binario di codifica in base64 è troppo grande. Ci sono poche immagini di questo tipo su Google.com: ( dimensione codificata base64 / dimensioni decodificate )
- Icona della tastiera 19 × 11 (106 B / 76 B)
- Icona del microfono 28 × 38 (334 B / 248 B)
- GIF trasparente 1 × 1 px (62 B / 43 B) che compare in Chrome Dev Tools risorse scheda, ma non sono riuscito a trovarlo nella sorgente, probabilmente aggiunto in seguito con JavaScript
- File GIF corrotto 1 × 1 px che appare due volte (34 B / 23 B). Il suo scopo è un mistero per me.