Cosa succede da quando premo invio sul browser web a quando vedo il sito sul mio PC o sul telefono, tutti i giri delle richieste dei bit e dei bytes, dei nomi, degli indirizzi, delle immagini e delle pubblicità.
Pillole di Bit (https://www.pilloledib.it/) è un podcast indipendente realizzato da Francesco Tucci, se vuoi metterti con contatto con me puoi scegliere tra diverse piattaforme: - Telegram (o anche solo il canale dedicato solo ai commenti delle puntate) - TikTok (per ora è un esperimento) - Twitter - BlueSky - Il mio blog personale ilTucci.com - Il mio canale telegram personale Le Cose - Mastodon personale - Mastodon del podcast - la mail (se mi vuoi scrivere in modo diretto e vuoi avere più spazio per il tuo messaggio) Rispondo sempre Se questo podcast ti piace, puoi contribuire alla sue realizzazione! Con una donazione diretta: - Singola con Satispay - Singola o ricorrente con Paypal Usando i link sponsorizzati - Con un acquisto su Amazon (accedi a questo link e metti le cose che vuoi nel carrello) - Attivando uno dei servizi di Ehiweb Se hai donato più di 5€ ricordati di compilare il form per ricevere i gadget!
Il sito è gentilmente hostato da ThirdEye (scrivete a domini AT thirdeye.it), un ottimo servizio che vi consiglio caldamente e il podcast è montato con gioia con PODucer, un software per Mac di Alex Raccuglia
Ciao a tutti e bentornati all’ascolto di Pillole di Bit, questa è la puntata 163 e io sono, come sempre, Francesco. Vi siete mai chiesti cosa succede dal momento in cui premete invio dopo aver chiedo al vostro browser un sito a quando questo compare, con tutte le immagini, i testi e le pubblicità sul vostro monitor? Che la risposta sia sì oppure no, oggi ve lo racconto. Solitamente per visualizzare un sito web si usa un programma che si chiama browser Internet, nella storia, per i più vecchi, ci si ricorda di Internet Explorer e Netscape, poi i tempi sono cambiati e adesso ce ne sono decine e decine, i più conosciuti adesso sono Google Chrome, Microsoft Edge, Mozilla Firefox, Apple Safari e un enorme sottobosco di browser meno conosciuti, ma altrettanto validi. Il browser a che serve? Serve a renderizzare, in parole più semplici, a interpretare i linguaggi con i quali sono costruite le pagine web, l’HTML e il CSS, di solito in modo che siano gradevoli all’occhio umano. In questa puntata faremo un sacco di divagazioni e puntualizzazioni. La prima è adesso. HTML non è un linguaggio di programmazione, come potrebbero essere Python, PHP e il C, ma di markup. Spiegarne le differenze non è scopo di questa puntata, ma è importante che sia chiara la differenza, Torniamo a noi. Voglio aprire un sito, lo scrivo nella barra degli indirizzi del browser e faccio INVIO. Immaginiamo di aver scritto il nome di un sito qualunque, con molti contenuti, ad esempio il sito lastampa.it (no, non mi ha sponsorizzato la puntata, è il primo sito che mi è venuto in mente). Il computer adesso deve raggiungere un posto dove risiede il sito che voglio vedere. Come faccio a sapere dove sta? Chiedo al DNS. Senti DNS, a che indirizzo trovo il nome lastampa.it? Dove sta il DNS? Nelle impostazioni di rete potrei aver impostato come DNS il mio router interno, oppure un DNS pubblico come quello di google oppure un DNS particolare, come Pi-Hole, che assolve anche ad alcune altre funzionalità, come il filtro dei contenuti. Qualunque sia la mia configurazione, il DNS, per come è fatto e funziona, mi restituisce un indirizzo IP, che è quello dove risiede, o almeno, al quale risponde, il sito lastampa.it. Ne ho parlato nella puntata 63 Qui potrebbero entrare in gioco dinamiche di rete molto complesse con siti su molti server, in molte zone del mondo che bilanciano il carico, io la faccio facile e immagino che il sito sia su un solo server. Il computer, sa qual è l’indirizzo, va lì e chiede “ciao, mi dai la home di lastapa.it?” Altra piccola parentesi. Moltissimi server web sono condivisi, quindi è assolutamente normale che a un solo indirizzo IP rispondano decine di siti web diversi con nomi a dominio diversi. E’ il server web che quando arriva la richiesta al suo IP, verifica che sito si desidera e fornisce quello corretto e non un altro. Arriva quindi la richiesta al server, che deve rispondere con il contenuto della home del sito lastampa.it Il Browser del PC sa renderizzare le pagine HTML e CSS, può anche elaborare alcune parti di codice, come ad esempio JAVA o Javascript, che, attenzione, anche se il nome è molto simile, non sono neanche lontanamente parenti, ma non può elaborare codice scritto per essere elaborato lato server, come ad esempio PHP, Python o ASP. Quindi, se una pagina web ha del codice scritto in alcuni tipi di linguaggi, prima va elaborato lato server, per esempio tutte le chiamate ai DB ed elaborazioni varie, poi viene inviata al client di destinazione, dove viene terminata l’elaborazione ed il rendering finale. Ma, c’è un grande ma. La pagina non contiene solo HTML e un po’ di Javascript, questo succedeva tanti tanti anni fa. Adesso le pagine web contengono una quantità inenarrabile di cacca. Cacca che si riassume in contenuti esterni, che quindi sono contenuti su altri server che il browser chiama man mano che renderizza la pagina, quindi nuove chiamate a nuovi server, altre richieste DNS, altri download i dati e così via. In certi casi i contenuti multimediali sono ancora su siti diversi, quindi dal server principale si scarica l'ossatura del sito, poi da altri siti si scaricano le parti più pesanti, e via di nuove richieste DNS. E qui entrano i servizi come Pi-Hole o NextDNS. Tutti i contenuti pubblicitari sui siti web sono solitamente esterni e risiedono su server che fanno solo quello, riforniscono e tracciano contenuti pubblicitari. Esistono delle enormi liste di questi siti, se io so che il sito pincopallino.com è uno di questi siti e lo metto all’interno di un mio server DNS personalizzato, posso fare in modo che tutte le richieste di risoluzione nome di pincopalino.com restituiscano un indirizzo non valido, in questo modo il mio PC non lo può raggiungere e non potrà visualizzare la pubblicità perché non avrà modo di scaricarla. La stessa cosa vale per contenuti malevoli da siti noti. Il problema si risolve alla radice, il computer non raggiunge i siti non desiderati. Adesso abbiamo tutti i contenuti sul PC e il browser che fa? Non è proprio vero, se no l’esperienza utente sarebbe pessima, pagina bianca per un po’ e poi compare tutto di colpo, ci sono metodi per iniziare a caricare i contenuti man mano che arrivano, ma qui facciamo le cose un po’ più semplici. Il browser ha tutte le informazioni per creare la pagina così come il designer del sito web voleva che apparisse all’ospite del sito, gli è arrivata tutta in formato testo e lui è pronto a interpretarlo per farla vedere in tutto il suo splendore. Colori, immagini, link ipertestuali e tutto quel che serve per rendere una pagina web gradevole alla vita e usabile. Chi progetta i siti web fa un gran lavoro, perché ormai le pagine devono essere adattabili ad ogni dispositivo che si collega al server, non l’ho detto prima per evitare di incasinare ancora di più la questione, ma quando un client, il mio PC, il mio telefono o altro, si presenta al server web e gli dice “ciao, vorrei vedere questa pagina”, il server gli chiede “ma tu, chi sei?” e il client di gli risponde “sono un PC, con il Browser Chrome con una Risoluzione 1920x1080” oppure “sono un Android, con il browser Brave e una risoluzione di 2160x1080”. In base a queste e altre informazioni, il server fornirà uno stile della pagina che potrà essere visualizzata in modo coerente sul dispositivo e sul browser che l’ha chiesta. Vi assicuro che per chi progetta le interfacce grafiche dei siti web, questa gestione è un vero delirio. A caricamento e renderizzazione effettuata ecco a voi la pagina web gradevole ai vostri occhi, pronta per essere utilizzata, con tutti i pulsanti al loro posto, le immagini, le animazioni e tutto quel che ci deve essere. Per fortuna, da Gennaio 2021, non ci sarà più Flash. Se volete vedere come è scritta la pagina web che state guardando, con il browser del PC potete fare click con il tasto destro e selezionare la voce Visualizza Sorgente pagina, ce l’hanno un po’ tutti i browser, in questo modo potete andare a vedere cosa c’è sotto a tutta la bella impaginazione che vi allieta gli occhi. Vi renderete conto che non c’è una sola riga di linguaggio tipo PHP o ASP, perché quella è tutta elaborazione che viene fatta sul server web che ospita il sito, quidni al client non arrivano i sorgenti della pagina, ma solo il risultato dell’elaborazione. I contatti Tutte le informazioni per contattarmi, sostenere il podcast, compresi tutti i link di cui ho parlato in puntata li trovate su www.pilloledib.it Mi trovate su twitter come pilloledibit o cesco_78 oppure via mail scrivendo a [email protected]. Il gruppo telegram è comunque il miglior modo per partecipare. Se volete donare qualcosa potete usare Paypal o Satispay, se donate più di 5€ vi spedisco gli adesivi, se vi abbonate a 5€ al mese vi mando la tessera numerata e arriveranno contenuti esclusivi. Se volete, potete persino donare in bitcoin, il link a borsellino lo trovate sul sito Grazie a chi ha contribuito! Se volete una consulenza tecnica in campo informatico trovate le informazioni su www.iltucci.com/consulenza e se volete sponsorizzare una puntata del podcast, le informazioni sono su www.pilloledib.it/sponsor Il tip Da qualche tempo il sito di Pillole di Bit ha cambiato casa ed è in hosting presso un provider italiano, del quale sono molto soddisfatto e che ha deciso di sponsorizzare alcune puntate del podcast. ThirdEye è il brand di hosting di un provider di Rimini con sede a Milano, Parvati Srl, sul quale ho il piacere di gestire parecchi siti che ha una caratteristica fondamentale che lo differenzia da tutti gli altri: Gianluca. Non è l'unico a gestirlo, eh! Col cavolo che io sarei andato a dare i siti dei miei clienti a un hosting provider gestito da una sola persona che se ha il mal di pancia poi non funziona più nulla. Se io ho un problema so con chi parlo, ha una faccia (ha anche due gatti e un cane bellissimi, ma non servono a far funzionare i siti) e ha una professionalità che raramente ho trovato altrove. Il pacchetto di hosting è completo, ha il CPANEL per tutta la gestione, permette di creare utenti ftp con le loro cartelle, ha l’accesso SSH al server, ha un repository git utile per chi sviluppa, permette di gestire in maniera completa il sito, anche i domini di terzo livello e tutti i certificati SSL che servono per farli funzionare. Ricordo ancora un giorno che mia moglie, che ha il suo sito professionale sui suoi server, ha avuto un problema con un aggiornamento, pianti dolorosi e lacrime, ho scritto “Gianluca, riesci ad aiutarmi e a ripristinare il backup del sito?” In meno di un’ora ha ripristinato tutto, ci ha detto cosa era andato storto e ha sistemato l’errore che ha causato il danno. Io, da nerd che vuole stare tranquillo con le cose che funzionano e che se si rompono tornano su in tempi rapidi, mi sento di consigliarlo. Per registrare il sito su ThirdEye potete scrivere a [email protected]. Non impazzite a segnarvelo, trovate la mail nelle note dell’episodio. Il pacchetto base, che è completo davvero di tutto, costa solo 61€ all’anno più 18,30€ di dominio. Non è un hosting alla buona, è un signor hosting. Lo provate e poi non lo abbandonate più. Bene è proprio tutto, non mi resta che salutarvi e darvi appuntamento alla prossima puntata, come al solito il lunedì mattina. Ciao!