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.
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.
Risposte:
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!"
Come funziona il web: spiegano HTTP e CGI
Anche una grande spiegazione del CERN - alma mater di Web: come funziona il web
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.
Manca così lontano dalle altre risposte è ciò che accade dal lato della CNN:
Questa ovviamente non è una spiegazione tecnica, ma è un simpatico aiuto visivo (dall'eccellente Vladstudio.com ) che può essere utile ad alcuni:
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.
Jeff Moser aveva un'eccellente analisi tecnica di una richiesta HTTPS sul suo blog: i primi pochi millisecondi di una connessione HTTPS .
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.