Podcast
Questions and Answers
Qual è la definizione di Round-Trip Time (RTT)?
Qual è la definizione di Round-Trip Time (RTT)?
Qual è uno svantaggio delle connessioni non persistenti?
Qual è uno svantaggio delle connessioni non persistenti?
Cos'è un messaggio di richiesta HTTP?
Cos'è un messaggio di richiesta HTTP?
Quale metodo HTTP NON è incluso in HTTP/1.1?
Quale metodo HTTP NON è incluso in HTTP/1.1?
Signup and view all the answers
Qual è la somma totale del tempo per la risposta comprensivo di RTT?
Qual è la somma totale del tempo per la risposta comprensivo di RTT?
Signup and view all the answers
In un messaggio HTTP, cosa indica la riga di stato?
In un messaggio HTTP, cosa indica la riga di stato?
Signup and view all the answers
Cosa avviene nelle connessioni persistenti?
Cosa avviene nelle connessioni persistenti?
Signup and view all the answers
Qual è il vantaggio delle connessioni persistenti rispetto a quelle non persistenti?
Qual è il vantaggio delle connessioni persistenti rispetto a quelle non persistenti?
Signup and view all the answers
Quale tra i seguenti NON è un tipo di messaggio HTTP?
Quale tra i seguenti NON è un tipo di messaggio HTTP?
Signup and view all the answers
Quali sono i componenti principali dei cookie?
Quali sono i componenti principali dei cookie?
Signup and view all the answers
Cosa specifica un cookie all'interno di una richiesta HTTP?
Cosa specifica un cookie all'interno di una richiesta HTTP?
Signup and view all the answers
Qual è lo scopo principale della cache web?
Qual è lo scopo principale della cache web?
Signup and view all the answers
Cosa NON è una funzione dei cookie?
Cosa NON è una funzione dei cookie?
Signup and view all the answers
In che modo la cache web gestisce le richieste quando un oggetto non è presente?
In che modo la cache web gestisce le richieste quando un oggetto non è presente?
Signup and view all the answers
Quali dati possono essere memorizzati nei cookie?
Quali dati possono essere memorizzati nei cookie?
Signup and view all the answers
Quale affermazione sui cookie è vera?
Quale affermazione sui cookie è vera?
Signup and view all the answers
Cosa non è un risultato di un sistema di caching web?
Cosa non è un risultato di un sistema di caching web?
Signup and view all the answers
Qual è il ruolo del database sul sito in relazione ai cookie?
Qual è il ruolo del database sul sito in relazione ai cookie?
Signup and view all the answers
Qual è il principale vantaggio del multiplexing in HTTP/2?
Qual è il principale vantaggio del multiplexing in HTTP/2?
Signup and view all the answers
Che cosa implica la priorità delle richieste in HTTP/2?
Che cosa implica la priorità delle richieste in HTTP/2?
Signup and view all the answers
In HTTP/2, cos'è un frame?
In HTTP/2, cos'è un frame?
Signup and view all the answers
Cosa accade se un client HTTP/1.x cerca di comunicare con un server HTTP/2?
Cosa accade se un client HTTP/1.x cerca di comunicare con un server HTTP/2?
Signup and view all the answers
Qual è l'effetto della compressione dell'header HTTP in HTTP/2?
Qual è l'effetto della compressione dell'header HTTP in HTTP/2?
Signup and view all the answers
Come vengono gestite le comunicazioni in HTTP/2?
Come vengono gestite le comunicazioni in HTTP/2?
Signup and view all the answers
Cosa rappresenta un identificativo univoco in un stream?
Cosa rappresenta un identificativo univoco in un stream?
Signup and view all the answers
Qual è l'obiettivo del framing binario in HTTP/2?
Qual è l'obiettivo del framing binario in HTTP/2?
Signup and view all the answers
Che ruolo hanno le dipendenze tra stream in HTTP/2?
Che ruolo hanno le dipendenze tra stream in HTTP/2?
Signup and view all the answers
Qual è il significato di pesi assegnati agli stream?
Qual è il significato di pesi assegnati agli stream?
Signup and view all the answers
Qual è la principale differenza tra HTTP/1.1 e HTTP/2 riguardo alle connessioni TCP?
Qual è la principale differenza tra HTTP/1.1 e HTTP/2 riguardo alle connessioni TCP?
Signup and view all the answers
Qual è la funzione principale del server push nel contesto di HTTP/2?
Qual è la funzione principale del server push nel contesto di HTTP/2?
Signup and view all the answers
Quali sono le tre fasi principali del protocollo TLS?
Quali sono le tre fasi principali del protocollo TLS?
Signup and view all the answers
Qual è il miglioramento principale fornito da HTTPS rispetto a HTTP?
Qual è il miglioramento principale fornito da HTTPS rispetto a HTTP?
Signup and view all the answers
Qual è l'effetto della 'S' in HTTPS sulla latenza di connessione?
Qual è l'effetto della 'S' in HTTPS sulla latenza di connessione?
Signup and view all the answers
Che tipo di sistema utilizza FTP per il trasferimento di file?
Che tipo di sistema utilizza FTP per il trasferimento di file?
Signup and view all the answers
Quale porta è normalmente utilizzata per la connessione di controllo in FTP?
Quale porta è normalmente utilizzata per la connessione di controllo in FTP?
Signup and view all the answers
Come si stabilisce una connessione dati in FTP dopo l'autenticazione?
Come si stabilisce una connessione dati in FTP dopo l'autenticazione?
Signup and view all the answers
Qual è una limitazione di TLS rispetto a HTTPS?
Qual è una limitazione di TLS rispetto a HTTPS?
Signup and view all the answers
Qual è il principale vantaggio dell'uso di HTTP/3 e QUIC rispetto a TLS?
Qual è il principale vantaggio dell'uso di HTTP/3 e QUIC rispetto a TLS?
Signup and view all the answers
Qual è il ruolo principale delle Content Delivery Networks (CDN)?
Qual è il ruolo principale delle Content Delivery Networks (CDN)?
Signup and view all the answers
Quale comando si utilizza per trovare l'indirizzo IP di un nodo della CDN di Facebook?
Quale comando si utilizza per trovare l'indirizzo IP di un nodo della CDN di Facebook?
Signup and view all the answers
Quale delle seguenti informazioni è necessaria per il client per connettersi a un server tramite una socket TCP?
Quale delle seguenti informazioni è necessaria per il client per connettersi a un server tramite una socket TCP?
Signup and view all the answers
Quale tipo di socket è associato a un trasferimento inaffidabile di dati?
Quale tipo di socket è associato a un trasferimento inaffidabile di dati?
Signup and view all the answers
Quale affermazione sui servizi TCP è vera?
Quale affermazione sui servizi TCP è vera?
Signup and view all the answers
Cos'è una socket nel contesto di applicazioni client/server?
Cos'è una socket nel contesto di applicazioni client/server?
Signup and view all the answers
Qual è uno dei principali vantaggi delle socket API?
Qual è uno dei principali vantaggi delle socket API?
Signup and view all the answers
Cosa si intende per 'stream socket' in TCP?
Cosa si intende per 'stream socket' in TCP?
Signup and view all the answers
Quale affermazione è falsa riguardo al processo server durante la comunicazione TCP?
Quale affermazione è falsa riguardo al processo server durante la comunicazione TCP?
Signup and view all the answers
Qual è la funzione della variabile 'buffer' in una socket TCP?
Qual è la funzione della variabile 'buffer' in una socket TCP?
Signup and view all the answers
Cosa deve fare il server quando riceve una richiesta di connessione da un client?
Cosa deve fare il server quando riceve una richiesta di connessione da un client?
Signup and view all the answers
Quale delle seguenti è una caratteristica distintiva delle socket Unix?
Quale delle seguenti è una caratteristica distintiva delle socket Unix?
Signup and view all the answers
La comunicazione tra client e server in un'architettura client/server avviene tramite:
La comunicazione tra client e server in un'architettura client/server avviene tramite:
Signup and view all the answers
Un client è responsabile della creazione della socket per:
Un client è responsabile della creazione della socket per:
Signup and view all the answers
Study Notes
Definizione di Round-Trip Time (RTT)
- Il RTT è il tempo impiegato da un pacchetto per viaggiare da un host a un altro e tornare indietro.
- Questo tempo include la propagazione di andata e ritorno.
- Un esempio è il tempo necessario a un piccolo pacchetto per viaggiare da un client a un server e tornare al client.
Il Tempo di Risposta
- Include il tempo per l'inizializzazione della connessione TCP;
- un RTT per la richiesta del file;
- un RTT per il ritorno della richiesta HTTP e dei primi byte della risposta HTTP;
- il tempo di trasmissione del file.
- Il tempo totale è di 2 RTT più il tempo di trasmissione.
Connessioni non persistenti
- Richiedono 2 RTT per oggetto.
- Hanno un overhead del sistema operativo per ogni connessione TCP.
- I browser spesso aprono connessioni TCP parallele per caricare gli oggetti referenziati.
Connessioni persistenti
- Il server mantiene la connessione TCP aperta dopo aver inviato una risposta.
- I messaggi successivi tra gli stessi client / server vengono trasmessi sulla connessione aperta.
- Il client invia le richieste non appena incontra un oggetto referenziato.
- Solo un RTT per tutti gli oggetti referenziati.
Messaggi HTTP
- I messaggi HTTP sono di due tipi: richiesta e risposta.
- I messaggi di richiesta HTTP sono in formato ASCII (leggibile dall'utente).
- La riga di richiesta include comandi come GET, POST, HEAD.
Formato generale del messaggio di richiesta HTTP
- La riga di richiesta indica il comando, l'oggetto richiesto e il protocollo.
- Le righe di intestazione forniscono informazioni aggiuntive come il nome host o l'agente utente.
- Un ritorno a capo e un avanzamento riga indicano la fine del messaggio.
Upload dell'input di un form
- Il metodo POST utilizza il corpo dell'entità per inviare l'input al server.
- Il metodo URL utilizza il campo URL della riga di richiesta per inviare l'input al server.
Tipi di metodi HTTP
- HTTP/1.0 supporta i metodi GET, POST e HEAD.
- HTTP/1.1 supporta inoltre i metodi PUT e DELETE.
- PUT include il file nel corpo del messaggio e lo invia al percorso specificato nel campo URL.
- DELETE cancella il file specificato nel campo URL.
Messaggio di risposta HTTP
- La riga di stato include il protocollo, il codice di stato e l'espressione di stato.
- Le righe di intestazione forniscono informazioni aggiuntive come la data, il server o l'ultima modifica.
Interazione utente-server: i cookie
- I cookie sono utilizzati da molti siti web per memorizzare informazioni sull'utente.
- Comprendono una riga di intestazione nel messaggio di risposta HTTP, una riga di intestazione nel messaggio di richiesta HTTP, un file cookie mantenuto sul sistema terminale dell'utente e un database sul sito.
Cookie (continua)
- Il server crea un identificativo unico per l'utente e una voce nel database per quell'ID.
- L'ID è inviato al client attraverso il campo Set-cookie: nel messaggio di risposta HTTP.
- Il client memorizza l’ID nel file cookie e lo aggiunge alla richiesta successiva nel campo cookie:.
- Il server può utilizzare questo ID per personalizzare l'esperienza dell'utente.
Cosa possono contenere i cookie?
- Autorizzazione
- Carta di credito
- Raccomandazioni
- Stato della sessione dell'utente
Cookie e privacy
- I cookie possono consentire ai siti di raccogliere informazioni sull'utente.
- L'utente può fornire al sito il nome e l'indirizzo email.
Cache web (server proxy)
- La cache web è un server proxy che memorizza le copie delle pagine web.
- Questa memorizzazione consente di soddisfare le richieste del client senza coinvolgere il server d'origine.
- Il browser trasmette tutte le richieste HTTP alla cache.
- Se l'oggetto è già in cache, la cache lo fornisce direttamente al client.
- In caso contrario, la cache richiede l'oggetto al server d'origine e poi lo inoltra al client.
Perché il caching web?
- Riduce il tempo di risposta per il client.
- Riduce il carico sul server d'origine.
- Migliora le prestazioni del sito web.
HTTP/2.0
- Consente di trasportare dati web con latenza minima grazie al multiplexing dei flussi e alla priorità delle richieste.
- HTTP/2 si basa sul protocollo SPDY.
Multiplexing di flussi
- Supporta un numero illimitato di flussi su una singola connessione TCP.
- Aumenta l'efficienza della connessione.
Priorità delle richieste
- Il client può inviare quante richieste desidera e assegnarle una priorità.
- Evita la congestione.
Compressione dell'header HTTP
- Diminuisce i byte trasmessi.
Framing binario
- È un nuovo livello che codifica e trasferisce i messaggi HTTP.
- HTTP/2 mantiene la semantica HTTP ma ne cambia la codifica in transito.
Stream, messaggi e frame
- Le comunicazioni vengono eseguite all'interno di una singola connessione TCP.
- Ogni stream ha un identificativo univoco e informazioni opzionali di priorità.
- Ogni messaggio HTTP è costituito da uno o più frame.
- Ciascun frame ha un tipo di dati specifico (es. intestazioni HTTP, payload dei messaggi).
- I frame di diversi stream possono essere intervallati e riassemblati tramite l'identificativo di flusso incorporato.
Multiplexing di richiste e risposte
- In HTTP/1.x, più connessioni TCP erano necessarie per eseguire richieste parallele.
- HTTP/2 elimina questa limitazione, permettendo di eseguire richieste e risposte in parallelo su una sola connessione.
- Il messaggio HTTP può essere diviso in frame indipendenti, intervallarli e ricomporli dall'altra parte.
Priorità degli stream
- L'ordine in cui i frame vengono intervallati e consegnati dal client e dal server influenza le prestazioni.
- HTTP/2 assegna un peso e una dipendenza a ciascun, consentendo di costruire un "albero di priorità" che indica come ricevere le risposte.
Connessione HTTP/2
- Non ha più bisogno di più connessioni TCP per eseguire stream in parallelo.
- Ogni stream è diviso in frame e gestito con priorità diverse.
- Tutte le connessioni HTTP/2 sono persistenti.
- È necessaria solo una connessione per origine.
Server push
- Il server può inviare più risposte per una singola richiesta del client.
- Invia risorse associate senza che il client le richieda esplicitamente.
- Il server può inviare le risorse associate alla risposta originale in anticipo.
Transport Layer Security (TLS)
- È un protocollo crittografico che consente una comunicazione sicura.
- Fornisce autenticazione, integrità dei dati e confidenzialità.
- Ha tre fasi principali: negoziazione dell'algoritmo, scambio delle chiavi e autenticazione, cifratura simmetrica e autenticazione dei messaggi.
HTTPS
- Invia tutte le richieste e le risposte attraverso una comunicazione cifrata.
- Utilizza TLS sulla porta 443.
- Il browser capisce automaticamente che deve usare TLS e invia richieste criptate.
- Cripta solo le informazioni del protocollo HTTP, non gli header dei protocolli inferiori.
- Più del 50% dei siti usa HTTPS.
La "S" aumenta il ritardo di connessione
- L'inizializzazione di una sessione TLS richiede tempo.
- Richiede 2 RTT più 1 RTT per la connessione TCP.
- Le soluzioni includono protocolli più moderni come HTTP/3 e QUIC.
Capitolo 2: Livello applicazione
- Tratta i principi delle applicazioni di rete, il web e HTTP, FTP, la posta elettronica (SMTP, POP3, IMAP), DNS, le applicazioni P2P e il cloud computing.
FTP: file transfer protocol
- Consente il trasferimento di file da/verso un host remoto.
- Utilizza il modello client/server.
- Il client FTP contatta il server FTP alla porta 21 usando TCP.
- Il server FTP apre una seconda connessione dati usando TCP per trasferire un file.
Contenuto Delivery Networks (CDN)
- Facebook ha la propria CDN.
- È possibile identificare i nodi CDN di Facebook utilizzando l'indirizzo fbcdn.net all'interno del codice HTML di una pagina web.
- Il comando "ping www.fbcdn.net" restituisce l'indirizzo IP di un nodo CDN.
- L'indirizzo IP può essere utilizzato per localizzare geograficamente il nodo tramite una ricerca online.
Programmazione delle Socket
- Le socket sono interfacce di comunicazione tra il processo di un'applicazione locale e il sistema operativo.
- Le socket sono aperte, utilizzate e chiuse dalle applicazioni, ma sono gestite dal sistema operativo (SO).
- Ci sono diversi tipi di socket, inclusi: DARPA Internet Address (Internet Socket), Unix Socket e indirizzi X.25 (X.25 Socket).
- Il paradigma client/server si basa sulle socket.
- Le socket API offrono due tipi di servizi di trasporto: datagramma inaffidabile e affidabile, orientato ai byte.
Programmazione delle Socket con TCP
- Una socket è una porta tra il processo di un'applicazione e il protocollo di trasporto end-to-end (UDP o TCP).
- TCP fornisce un trasferimento affidabile di byte tra i processi, chiamato socket di stream (SOCK_STREAM).
- La connessione TCP passa attraverso buffer e variabili gestite dal sistema operativo e dall'applicazione.
- Per comunicare, il client deve contattare il server con una socket TCP e specifiche di indirizzo IP e numero di porta del server.
- Il server, una volta contattato, crea una nuova socket per comunicare con il client.
- Il server può gestire connessioni con più client utilizzando numeri di porta distinti.
- TCP offre un trasferimento di byte affidabile e ordinato tra il client e il server, come una "pipeline".
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Scopri il concetto di Round-Trip Time (RTT) e il suo impatto sulle prestazioni di rete. Questo quiz esplora il tempo di risposta delle connessioni TCP, sia persistenti che non persistenti, e come questi influenzano il caricamento delle risorse. Testa le tue conoscenze su questi importanti aspetti delle reti di computer.