Mi chiamo Jasmine Lawrence e sono una program manager nel team di ingegneri della XBox One. Uno dei nostri servizi più importanti si chiama XBox Live. È un servizio online che connette giocatori da ogni parte del mondo e funziona grazie ad Internet. Non è un compito facile e ci sono un sacco di cose che succedono dietro le quinte. Internet sta completamente cambiando il modo in cui le persone interagiscono e si mantengono in contatto. Ma come funziona? Come fanno effettivamente i dispositivi sparsi in tutto il mondo a comunicare tra di loro? Diamo un'occhiata alla navigazione sul web. Per prima cosa, si apre un browser. È il programma che si usa per accedere alle pagine web. Poi si digita l'indirizzo Internet anche detto URL Uniform Resource Locator del sito web che si vuole visitare, come Tumblr.com Ciao, sono David Karp, il fondatore di Tumblr e oggi siamo qui per parlare di come funzionano i browser web che usiamo tutti i giorni. Probabilmente ti sei domandato cosa succede concretamente quando digiti un indirizzo web nel tuo browser e poi premi "Invio". E in effetti è davvero incredibile quanto immagini! Innanzitutto, il tuo dispositivo comincia a comunicare con un altro computer, detto server, solitamente a migliaia di chilometri di distanza. In pochi millisecondi il tuo dispositivo richiede a quel server il sito internet, e il server comincia a rispondergli in un linguaggio denominato HTTP. HTTP è l'acronimo di HyperText Transfer Protocol e puoi pensarlo come il linguaggio che un dispositivo usa per richiedere un documento a un altro dispositivo. Ed è effettivamente abbastanza chiaro e diretto. Se tu potessi intercettare in Internet la conversazione tra il tuo dispositivo e il web server scopriresti che è prevalentemente costituita da semplici richieste denominate "GET". Si tratta di semplici istruzioni composte dalla parola "GET" e dal nome del documento richiesto. Se stai provando ad accedere a Tumblr e a caricare la nostra pagina di login, tutto quello che che stai facendo è inviare una richiesta "GET" ai server di Tumblr con le parole: "GET /login". E ciò dice ai server di Tumblr che il tuo dispositivo vuole tutto il codice HTML della pagina di login di Tumblr. HTML è l'acronimo di Hyper Text Markup Language ed è il linguaggio usato per dire a un browser quale aspetto debba avere una pagina web. Puoi pensare a qualcosa come Wikipedia, che in fondo è semplicemente un unico grande documento e l'HTML è il linguaggio usato per rendere i titoli grandi e in grassetto, per far sì che il tipo di carattere sia quello voluto, per collegare parti di testo ad altre pagine, per scrivere in grassetto, oppure in corsivo, per centrare un'immagine, per allinearla a destra oppure allinearla a sinistra. Il testo della pagina web è incluso direttamente all'interno del codice HTML, ma altre parti, quali le immagini o i video, sono file distinti, con un loro URL, che hanno bisogno di essere richiesti. Il browser invia delle richieste HTTP distinte per ognuno di questi file e poi li mostra man mano che arrivano. Se una pagina web ha molte immagini diverse ognuna di esse causa una distinta richiesta HTTP e la pagina si carica più lentamente. In alcune occasioni, quando navighi sul web non stai semplicemente richiedendo pagine tramite delle richieste "GET". A volte invii dei dati, come quando riempi un modulo o digiti delle parole chiave da cercare. Il tuo browser invia questi dati come testo semplice al web server, usando una richiesta HTTP "POST". Poniamo che tu voglia accedere a Tumblr. Ebbene, la prima cosa che fai è inviare una richiesta "POST" alla pagina di login di Tumblr con alcuni dati allegati ad essa, come il tuo indirizzo email e la tua password. Essi arrivano al web server di Tumblr, esso verifica che, sì, sei proprio David e rimanda indietro una pagina web al tuo browser che dice: «Ok, ora sei loggato come David!». Ma insieme a quella pagina allega anche dei piccoli file invisibili chiamati Cookie, che il tuo browser vede e sa dove salvare. E sono davvero importanti perché è l'unico modo in cui un sito web può ricordare ogni volta chi tu sia. Questi cookie sono quindi una specie di carta di identità valida per Tumblr. È un numero che ti identifica come David. E il tuo browser custodisce quel numero e la volta successiva in cui aggiornerai la pagina di Tumblr o che andrai su tumblr.com, il tuo browser allegherà automaticamente questo codice alla richiesta che invierà ai server di Tumblr. Quindi, i server di Tumblr riceveranno la richiesta proveniente dal tuo browser vedranno il tuo numero identificativo e capiranno: «Ok, questa è una richiesta proveniente da David». La rete Internet è completamente aperta, tutte le sue connessioni sono condivise ed i dati sono trasmessi in formato testo. Ciò rende possibile agli hacker spiare ogni dato personale che invii tramite Internet. Ma i siti sicuri prevengono questo problema chiedendo al tuo browser di comunicare su un canale sicuro usando un protocollo chiamato "Secure Sockets Layer" (SSL) e il suo successore chiamato "Transport Layer Security" (o TLS). Puoi pensare all'SSL e al TLS come ad uno strato di sicurezza che avvolge le tue comunicazioni per proteggerle da intercettazioni e manomissioni. L'SSL e il TLS sono attivi quando vedi quel piccolo lucchetto nella barra degli indirizzi del tuo browser a sinistra delle lettere "HTTPS". I protocolli HTTPS garantiscono che le tue richieste siano sicure e protette. Quando un sito web chiede al tuo browser di attivare una connessione sicura, fornisce innanzitutto un certificato digitale una sorta di documento di identità ufficiale che garantisce che quel sito è proprio chi sostiene di essere. I certificati digitali sono pubblicati da autorità di certificazione, vale a dire entità terze affidabili, che verificano le identità dei siti web e rilasciano loro dei certificati. Proprio come i governi possono rilasciare carte di identità o passaporti. Se un sito web prova ad avviare una connessione sicura senza possedere un adeguato certificato digitale il tuo browser ti metterà in guardia. Ecco, questi sono i fondamenti della navigazione sul web, la parte di Internet che vediamo ogni giorno. Per riassumere, l'HTTP e il DNS gestiscono l'invio e la ricezione del codice HTML, dei file multimediali o di qualsiasi altra cosa che viaggi sul web. Ciò che rende tutto questo possibile dietro le quinte sono la famiglia dei protocolli di rete TCP/IP e la rete di router che suddivide e trasporta i dati in tanti piccoli pacchetti. Questi pacchetti sono a loro volta fatti di codice binario, sequenze di uni e zeri che fisicamente sono inviati tramite fili elettrici, cavi di fibre ottiche e reti wireless. Fortunatamente, una volta imparato come funziona un certo livello della struttura di Internet , ci si può basare su esso senza dover ricordare tutti i dettagli. E ci si può fidare che tutti i vari livelli funzioneranno insieme per consegnare correttamente a destinazione tutti i dati su scala planetaria ed in modo affidabile!