Qualcuno può dirmi cosa succede dietro le quinte dal momento in cui scrivo un URL nel browser al momento in cui riesco a vedere la pagina sul browser? Un resoconto dettagliato del processo sarebbe di grande aiuto.
Qualcuno può dirmi cosa succede dietro le quinte dal momento in cui scrivo un URL nel browser al momento in cui riesco a vedere la pagina sul browser? Un resoconto dettagliato del processo sarebbe di grande aiuto.
Risposte:
Attenzione: questo è uno schizzo estremamente approssimativo e semplificato , che presuppone la richiesta HTTP più semplice possibile (no HTTPS, no HTTP2, nessun extra), DNS più semplice possibile, nessun proxy, IPv4 single-stack, una sola richiesta HTTP, un semplice server HTTP su l'altra estremità, e nessun problema in nessun passaggio. Questo è, per la maggior parte degli intenti e degli scopi contemporanei, uno scenario non realistico; tutti questi sono molto più complessi nell'uso effettivo e lo stack tecnologico è diventato un ordine di grandezza più complicato da quando è stato scritto. Con questo in mente, la seguente sequenza temporale è ancora in qualche modo valida:
Ancora una volta, la discussione di ciascuno di questi punti ha riempito innumerevoli pagine; prendilo solo come una sintesi, abbreviato per motivi di chiarezza. Inoltre, ci sono molte altre cose che accadono in parallelo a questo (elaborazione dell'indirizzo digitato, prefetching speculativo, aggiunta di pagina alla cronologia del browser, visualizzazione dei progressi per l'utente, notifica di plugin ed estensioni, rendering della pagina durante il download, pipeline, tracciamento delle connessioni per keep-alive, gestione dei cookie, controllo di contenuti dannosi ecc.) - e l'intera operazione diventa un ordine di grandezza più complesso con HTTPS (certificati, cifre e pinning, oh mio!).
Innanzitutto il computer cerca l'host di destinazione. Se esiste nella cache DNS locale, utilizza tali informazioni. In caso contrario, le query DNS vengono eseguite fino a quando non viene trovato l'indirizzo IP.
Quindi, il browser apre una connessione TCP all'host di destinazione e invia la richiesta in base a HTTP 1.1 (o potrebbe utilizzare HTTP 1.0, ma i browser normali non lo fanno più).
Il server cerca la risorsa richiesta (se esiste) e risponde utilizzando il protocollo HTTP, invia i dati al client (= browser)
Il browser utilizza quindi il parser HTML per ricreare la struttura del documento che viene successivamente presentata sullo schermo. Se trova riferimenti a risorse esterne, come immagini, file css, file javascript, questi vengono consegnati allo stesso modo del documento HTML stesso.
Cerca le specifiche di HTTP. O per iniziare, prova http://www.jmarshall.com/easy/http/