Cosa succede esattamente quando navighi in un sito web nel tuo browser?


64

Cosa succede dietro le quinte quando digitiamo www.cnn.com in un browser e come vengono visualizzate le informazioni sullo schermo?

Una spiegazione tecnica sarebbe molto apprezzata.


Una grande spiegazione tecnica può essere trovata in questo libro: Networking Computer: A Top-Down Approach 6th Edition (Link: Book ). (pagine 495-500) Entrano in una considerevole quantità di dettagli; a partire da ciò che accade quando il computer è acceso fino al momento in cui un sito Web viene visualizzato nel browser degli utenti. Puoi avere un assaggio di ciò che è menzionato nel libro in questo set di diapositive. (Link: Slides 88 to 95)
Slothworks,

Risposte:


134

Browser: "Ok, quindi, ho un utente che richiede questo indirizzo: www.cnn.com. Immagino che non ci siano barre o altro, questa è una richiesta diretta di una pagina principale. Non è stato definito alcun protocollo o porta, quindi suppongo che sia HTTP e che vada alla porta 80 ... vabbè, prima le prime cose. Ehi DNS, amico, svegliati! Dove si nasconde questo www.cnn.com? "

DNS: "Giusto ... aspetta un secondo, chiederò ai server ISP. Ok, sembra 157.166.226.25."

Browser: "Ok. Internet Protocol Suite, il tuo turno! Chiama 157.166.226.25, per favore. Invia loro questa intestazione HTTP. Sta chiedendo la struttura di base e il contenuto della loro pagina principale, quindi so cos'altro recuperare ... vabbè, non che ti interessi a questo, immagino. "

TCP / IP: "Cosa vuoi dire con il mio turno ? Come se non stessi semplicemente lavorando con le mie spalle proprio lì per il DNS? Dio, cosa ci vuole per ottenere un po 'di apprezzamento qui ..."

Browser: ...

TCP / IP: "Sì, sì ... Connessione ... Chiederò al gateway di inoltrarlo. Sai, non è poi così facile, dovrò dividere la tua bella richiesta in più parti così arriva alla fine, e assembla tutte le cose che rimandano da tutte le migliaia di pacchi che ricevo ... ah, giusto, non ti interessa. Cifre. "

Nel frattempo, presso la sede della CNN, un messaggio finisce finalmente alla porta del Web Server.

CNN Web Server: "Nzhôô! Un cliente! Vuole notizie! La prima pagina! Che ne dici?"

Motore di script lato server CNN: "Giusto, lo farà! Prima pagina, giusto?"

Server database CNN: "Yey! Lavora per me! Di quali contenuti hai bisogno?"

CNN Server Side Script Engine: "... um, mi spiace DB, ho una copia della prima pagina proprio qui nella mia cache, non c'è bisogno di compilare nulla. Ma hey, prendi questo ID utente e memorizzalo, lo invierò anche al cliente, quindi sappiamo con chi parleremo in seguito ".

Server database CNN: "Yey!"

Di nuovo sul computer dell'utente ...

TCP / IP: "Ooookay, ecco la risposta. Oh ragazzo, perché ho la sensazione che questo sarà grande ..."

Browser: "Uh, wow ... questo ha tutti i tipi di codice javascript ... un sacco di immagini, un paio di forme ... Bene, ci vorrà un po 'per il rendering. Meglio arrivare ad esso. Ehi, sistema IP, ci sono molte altre cose che devi ottenere. Vediamo che ho bisogno di alcuni fogli di stile da i.cdn.turner.com - via HTTP e chiedi il file /cnn/.element/css/2.0/common.css. E poi prendi anche alcuni di questi script su i.cdn.turner.com, ne conto fino a sei ... "

TCP / IP: "Ottengo l'immagine. Dammi solo gli indirizzi del server e tutto il resto. E racchiudi quel file all'interno della richiesta HTTP, non voglio occuparmene."

DNS: "Controllo di i.cdn.turner.com ... ehi, un po 'di curiosità, in realtà si chiama cdn.cnn.com.c.footprint.net. L'IP è 4.23.41.126"

Browser: "Certo, certo ... aspetta un secondo, ci vorranno alcuni secondi per l'elaborazione, sto cercando di capire tutto questo script ..."

TCP / IP: "Ehi, ecco il CSS che hai richiesto. Oh, e ... sì, anche quegli script aggiuntivi sono appena tornati."

Browser: "Accidenti, c'è di più ... una sorta di annuncio video!"

TCP / IP: "Oh ragazzo, che divertimento suona ..."

Browser: "Ci sono anche tutti i tipi di immagini! E questo CSS sembra un po 'brutto ... giusto, quindi se quella parte va lì, e ha questa linea in cima ... come mai si adatterebbe più ... no , Dovrò allungare un po 'questo per farlo ... Oh, ma quell'altro file CSS ha la precedenza su quella regola ... Beh, questo non sarà un pezzo facile da renderizzare, questo è certo! "

TCP / IP: "Ok, ok, smettila di distrarmi per un secondo, c'è ancora molto da fare qui."

Browser: "Utente, ecco un piccolo rapporto sullo stato di avanzamento per te. Ci dispiace, tutto ciò potrebbe richiedere alcuni secondi, ci sono circa 140 elementi diversi da caricare e andare a 16 finora."

Uno o due secondi dopo ...

TCP / IP: "Ok, dovrebbe essere tutto. Ehi, ascolta ... scusa se ti ho scattato prima, ci stai gestendo? Questo sembra sicuramente un grosso carico anche per te."

Browser: "Accidenti, sì, sono tutti questi siti web oggi, sicuramente non ti renderanno facile. Beh, ce la farò. È per questo che sono qui."

TCP / IP: "Immagino sia abbastanza pesante per tutti noi in questi giorni ... oh, smettila di gongolare lì DNS!"

Browser: "Ehi utente! Il sito Web è pronto - vai a ricevere le tue notizie!"


17
Questo è ciò che fa il mio PC dopo il tramonto.
Phoshi,

7
Grande spiegazione ... Hat is Off to you ... Bingo ...
Rachel,

7
Meraviglioso pezzo di narrazione :)
Michael Borgwardt,

5
@dex: ... e ancora oggi stanno andando forte, risolvendo tutte le stravaganti richieste dell'utente con una diligenza degna di lode nei libri di storia. Ma, come tutte le cose, un giorno sarà il momento di ritirarsi nell'obsolescenza, lasciando il posto con grazia ad approcci più moderni adatti a tempi più moderni. Ma assicurati che saranno sempre lì, nella nostra eredità, a guardare con un sorriso consapevole e passare alle generazioni future tutte le dure lezioni che hanno imparato durante questi periodi vibranti di comunicazioni Internet emergenti.
Ilari Kajaste,

3
Evviva per gli oppositori, vero, @wahnfrieden? Lo considero piuttosto accurato e informativo.
Jürgen A. Erhard,


18
  • Il browser divide ciò che si digita (l'URL) in un nome host e un percorso.
  • Il browser forma una richiesta HTTP per richiedere i dati nel nome host e nel percorso indicati.
  • Il browser esegue la ricerca DNS per risolvere il nome host in un indirizzo IP.
  • Il browser forma una connessione TCP / IP al computer specificato tramite l'indirizzo IP. (Questa connessione è in realtà formata da molti computer, ognuno dei quali passa i dati al successivo.)
  • Il browser invia la richiesta HTTP tramite la connessione all'indirizzo IP indicato.
  • Quel computer riceve la richiesta HTTP dalla connessione TCP / IP e la passa al programma del server web.
  • Il server Web legge il nome host e il percorso e trova o genera i dati richiesti.
  • Il server Web genera una risposta HTTP contenente tali dati.
  • Il server Web invia la risposta HTTP indietro alla connessione TCP / IP al computer.
  • Il browser riceve la risposta HTTP e la divide in intestazioni (descrivendo i dati) e nel corpo (i dati stessi).
  • Il browser interpreta i dati per decidere come visualizzarli nel browser, in genere si tratta di dati HTML che specificano i tipi di informazioni e la loro forma generale.
  • Alcuni dei dati saranno metadati che specificano ulteriori risorse che devono essere caricate, come fogli di stile per un layout dettagliato, immagini incorporate o filmati Flash. Questi metadati vengono nuovamente specificati come URL e l'intero processo si ripete per ognuno finché non vengono caricati tutti.

Questo è buono, ma potrebbe valere la pena menzionare la memorizzazione nella cache (sul browser e altrove), i proxy, il bilanciamento del carico, i CDN e così via. Penso che tutti questi siano una parte cruciale della comprensione di come (sulla terra) i siti occupati gestiscono milioni di richieste quasi simultanee per grandi quantità di contenuti.
Sam Dutton,

12

Il primo passo è la ricerca DNS (Domain Name Server). Utilizza i server DNS specificati nelle impostazioni di rete (o forniti da DHCP) per cercare il dominio principale (cnn.com) e quindi chiedere al nameserver di quel dominio l'indirizzo IP del sottodominio specificato (www.cnn.com).

Dopo che ha l'indirizzo IP, il browser inizia le comunicazioni con il web server. Questo viene fatto usando il protocollo specificato (che di default è HTTP 1.1). Una richiesta 'GET' per '/' viene fatta al server, che risponde con il contenuto del documento HTML e le intestazioni appropriate (che indicano al browser il tipo di contenuto, HTML e altre informazioni del documento). Quindi il browser analizza il documento e trova tutti gli URL che deve incorporare nella pagina (come immagini o fogli di stile collegati) e riceve richieste su ciascuno di essi.

Di solito il browser inoltra automaticamente una richiesta GET per "/favicon.ico" (per visualizzare la piccola icona CNN accanto al titolo del sito).

È probabile che il browser specifichi anche nelle intestazioni delle richieste che desidera comprimere il contenuto della risposta, utilizzando l'algoritmo gzip. Questo rende il download del file molto più piccolo, se il server lo supporta. Tutto questo è trasparente per te, anche se è come scaricare un file ZIP e decomprimerlo.

Quando si ricarica la pagina, il browser verifica se tale pagina è già memorizzata nella cache del sistema e, in tal caso, esegue una richiesta HTTP solo per l'intestazione del documento e ne controlla la data modificata. Se questa data è successiva alla sua copia cache, richiede nuovamente l'intero contenuto del documento e aggiorna la pagina. Altrimenti usa solo la tua copia locale.


Il ragazzo non conosce le basi e gli hai appena rovinato DNS, DHCP e IP. Spieghiamo la struttura del pacchetto IP per lui!

6
Ha chiesto dettagli tecnici. Può cercare IP se vuole.

Il fatto è che probabilmente non vuole cercare nulla ... :(

8

Manca così lontano dalle altre risposte è ciò che accade dal lato della CNN:

  • Un computer della CNN riceve il messaggio dal tuo computer che richiede la pagina.
  • Reindirizza questa richiesta a uno dei molti computer che CNN sta utilizzando per il suo sito Web (la ragione di ciò è che, in questo modo, puoi diffondere il lavoro di mettere insieme le pagine Web di risposta su molti computer)
  • Il computer CNN riceve la tua richiesta e risponde con una pagina web che è probabilmente quasi interamente pre-calcolata, ma forse cambierà alcune cose prima di inviarti (potrebbe essere l'annuncio in alto, forse le notizie principali). A volte i computer assemblano la pagina da molti piccoli componenti ogni volta che ricevono una richiesta; non sono sicuro di cosa faccia la CNN
  • la risposta si fa strada attraverso la rete al tuo computer, che poi la visualizza.
  • la risposta non ha incluso le immagini: il tuo computer invia quindi un'altra richiesta per le immagini e si verifica praticamente lo stesso scenario.

6

Questa ovviamente non è una spiegazione tecnica, ma è un simpatico aiuto visivo (dall'eccellente Vladstudio.com ) che può essere utile ad alcuni:

Come funziona Internet


1

Le informazioni che hai appena chiesto potrebbero riempire una dozzina di libri. Ma ecco il mio tentativo di spiegarlo: il tuo browser dice al tuo sistema operativo di trovare l'indirizzo IP di cnn.com. Quindi il tuo sistema operativo richiede a un server DNS l'indirizzo IP per cnn.com. L'IP viene inviato al broswer che contatta l'indirizzo IP e richiede la pagina. cnn.com quindi invia te e la pagina html. Il browser analizza l'html e invia le informazioni al renderer HTML. Il browser quindi dice al sistema operativo cosa visualizzare sullo schermo.



1

C'è un video davvero interessante del "Sendung mit der Maus" (un programma televisivo tedesco molto popolare che spiega la tecnologia per i bambini):

Die Sendung mit der Maus - Wie funktioniert das Internet (Come funziona Internet).

Solo in tedesco, purtroppo, ma divertente anche senza il testo. Uomini con caschi divertenti giocano i pacchetti IP e i dati sono scritti su carte di carta. Classico :-).

A proposito, le spiegazioni sono in realtà abbastanza buone.

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.