Please enable JavaScript.
Coggle requires JavaScript to display documents.
Capitolo 11: Livello Applicazione (7), WWW- World Wide Web, Posta…
-
-
-
Cookie
Problema: HTTP è un protocollo stateless (senza stato). Il server esegue la richiesta e si dimentica di te . Come fa un sito di e-commerce a ricordare il tuo carrello? Soluzione: I Cookie.
Quando visiti un sito, il server invia una risposta HTTP che include un'intestazione Set-Cookie: con un piccolo file di testo (es. customerID=40779321).
-
Per ogni richiesta futura che farai a quel dominio, il browser includerà automaticamente un'intestazione Cookie: customerID=40779321 .
Il server legge il cookie, sa chi sei e ti mostra il tuo carrello.
Un cookie contiene: Dominio, Percorso, Contenuto (nome=valore), Scadenza (se non c'è, è un cookie non persistente e viene cancellato alla chiusura del browser), e il flag Secure (inviato solo su HTTPS) .
-
Caching
Problema: Un utente visita 10 pagine dello stesso sito. Scaricherà 10 volte lo stesso logo, sprecando banda e tempo . Soluzione: Il Caching. Il browser salva una copia locale (nella cache) delle risorse.
Il browser chiede una risorsa (es. logo.jpg). Il server risponde e include un header Expires: (data di scadenza) o Last-Modified: (data ultima modifica).
-
Il browser controlla la cache. Se la copia non è scaduta (data Expires futura), la usa direttamente senza contattare il server. (Velocissimo).
Se la copia è scaduta (o non ha data di scadenza), il browser fa un GET Condizionale: invia una richiesta HTTP al server dicendo "Ho una versione del file del [data Last-Modified]. È ancora valida?" .
Il server controlla:
Sì, è valida: Risponde HTTP/1.1 304 Not Modified (una risposta vuota, velocissima). Il browser usa la sua copia in cache.
No, è cambiata: Risponde HTTP/1.1 200 OK con la nuova versione del file.
2 componenti principali
User Agent (UA): Il programma che usi per leggere e scrivere email (es. Outlook, Thunderbird, o l'interfaccia di Gmail).
Message Transfer Agent (MTA): Il "server di posta" (o "mail server"). È un processo che gira 24/7, il cui compito è spostare i messaggi da un server all'altro
Processo di invio
-
-
-
Il destinatario, con il suo UA, contatta il suo MTA per scaricare e leggere l'email.
-
-
-
Problema: Internet si basa su indirizzi IP (es. 142.250.184.142), ma gli umani ricordano nomi (es. google.com). Soluzione: Il DNS, un database gerarchico e distribuito che mappa i nomi agli indirizzi IP (e viceversa).
Gerarchia: È un albero
-
I TLD (Top-Level Domain): es. .com, .it, .org.
-
-
Componenti:
Resolver: Il software client (spesso una libreria) che fa la domanda (es. gethostbyname()).
Server DNS (Name Server): Il server che detiene i dati e risponde.
Tipi di Query:
Ricorsiva: Il client chiede al suo server DNS locale: "Trovami l'IP di www.sito.it e dammi la risposta finale". Il server locale fa tutto il lavoro (chiede alla radice, poi al .it, poi a sito.it).
Iterativa: Il server locale chiede al server Radice: "Dov'è www.sito.it?". La Radice risponde: "Non lo so, ma chiedi al server .it (ecco il suo IP)". Il server locale allora chiede al .it, e così via.
-
Problemi e Sicurezza
Problema: Il DNS è nato "ingenuo". È in chiaro (non cifrato) e si basa su UDP (facile da falsificare, spoofing) . Un hacker può intercettare la tua richiesta e darti un IP falso (es. mandarti su un sito di phishing invece che sul sito della tua banca).
Soluzione: DNSSEC (DNS Security Extensions). Aggiunge firme digitali (crittografia) ai record DNS. Questo non cifra la richiesta, ma autentica la risposta, garantendo che provenga dal server corretto e non sia stata modificata.
- Protocolli di Trasporto File
-
-
- Distribuzione di Contenuti (CDN)
Problema: I siti enormi (Netflix, Google, Facebook) non possono esistere su un solo server, nemmeno su una Server Farm (un cluster di server in un unico datacenter). La distanza fisica (latenza) renderebbe il sito lentissimo per gli utenti dall'altra parte del mondo.
Soluzione: CDN (Content Delivery Network). L'idea è di replicare i contenuti (specialmente quelli statici e pesanti come video e immagini) su migliaia di server "edge" sparsi per il globo, posizionandoli vicino agli utenti finali .
Proxy Web (8.5.1.2): È una cache condivisa per un gruppo di clienti (es. un'università). È un modello PULL: la cache si riempie quando i client richiedono (tirano) i contenuti.
CDN (8.6): È una rete di server gestita dal fornitore di contenuti. È un modello PUSH: il fornitore spinge (replica) i suoi contenuti sui server edge prima che gli utenti li chiedano.
-