Protocolli HTTP e FTP Flashcards
Cos’è HTTP e come funziona
HTTP è un protocollo testuale che si basa su TCP, principalmente utilizzato per lo scambio di documenti.
E’ un protocollo stateless, ovvero né il server né il client mantengono a livello HTTP informazioni relative ai messaggi scambiati. Funzionamento:
-il client apre un socket verso il porto 80
-il server accetta la connessione
-il client manda una richiesta
-il serve risponde e chiude la connessione
(pull protocol)
Differenza tra connessione persistente e non persistente
Connessione persistente: il server analizza una richiesta, la serve e chiude la connessione
2 RTT per ogni richiesta e ogni richiesta subisce lo slow-start di TCP
Connessione non persistente: sulla stessa connessione il server analizza tutte le richieste e le serve mentre il client riceve la pagina iniziale e invia subito le altre richieste
Meno RTT e un solo slow-start TCP
In che altro modo viene utilizzato HTTP
Può essere utilizzato anche per il trasferimento di pagine web. Tipicamente, una pagina web è descritta da un file testuale in formato HTML ed è identificata tramite un indirizzo detto URL. A sua volta un file HTML può contenere riferimenti ad altri oggetti che arricchiscono la pagina con elementi grafici ed ognuno di essi è identificato da un URL e possono trovarsi anche su siti web diversi. Quindi quando il browser deve prelevare questi oggetti, li richiede tramite connessioni HTTP
Da cos’è composto un URL
URL = Uniform Resource Locator
Un URL HTTP ha la seguente sintassi:
http://host[:port]/path[#fragment][?query]
“host” identifica il server
“port” è opzionale e indica il numero di porto
“path” indica la risorsa sul server
“#fragment” identifica un punto preciso in un oggetto
“?query” viene utilizzato per passare informazioni dal client al server
Quali metodi sono presenti in HTTP
Metodo GET: usato per richiedere una risorsa ad un server e può essere assoluto, condizionale o parziale
Metodo HEAD: simile al metodo GET, ma il server deve rispondere soltanto con gli header relativi, senza il corpo
Metodo POST: serve per trasmettere delle informazioni dal client al server, ma senza la creazione di una nuova risorsa
Metodo PUT: serve per trasmettere delle informazioni dal client al server, creando o sostituendo la risorsa specificata
Cos’è la risposta HTTP
La risposta HTTP è un messaggio testuale formato da
una riga iniziale, da header facoltativi ed
eventualmente un body (corpo) al cui interno possiamo trovare uno status code, un numero di 3 cifre di cui la prima indica la classe:
-1xx Informational
-2xx Successfull
-3xx Redirection
-4xx Client error
-5xx Server error
Quanti tipi di header esistono
-Header di risposta: sono posti dal server per specificare informazioni sulla risposta e su se stesso al client
-Header generali: si applicano solo al messaggio trasmesso e si applicano sia ad una richiesta che ad una risposta (data, MIME version, cache control, transfer encoding ecc)
-Header dell’entità: danno informazioni sul body del messaggio, o, se non vi è body, sulla risorsa specificata (content type, content lenght, last modified ecc)
Cosa sono i cookies
Un cookie è una breve informazione scambiata tra il
server ed il client
Tramite un cookie il client mantiene lo stato di
precedenti connessioni, e lo manda al server di
pertinenza ogni volta che richiede un documento
Possiedono degli header specifici
Cosa si intende per web caching
Si parla genericamente di Web caching quando le richieste di un determinato client non raggiungono il Web Server, ma vengono intercettate
da una cache
Se l’oggetto richiesto non è presente nella cache, questa lo richiede in vece del client conservandone una copia per eventuali richieste successive
Cos’è un server proxy
Un server proxy è un computer che intercetta e gestisce il traffico tra due dispositivi, reti o protocolli. Il server proxy inoltra il traffico tra il tuo dispositivo e il Web, garantendo che il tuo browser non sia mai a contatto diretto con i siti che visiti.
Come viene gestita la coerenza da HTTP
se l’oggetto presente nel server viene aggiornato, deve essere aggiornata anche la sua copia all’interno della cache e HTTP fornisce due meccanismi per farlo:
-TTL(time to live): il server quando fornisce un oggetto dice anche quando quell’oggetto “scade”
-il client può fare un ulteriore controllo mediante una GET condizionale
Cos’è FTP e come funziona
FTP (File Transfer Protocol) è un protocollo che consente la trasmissione di uno o più files di qualsiasi tipo tra due macchine. Usa un modello client/serve e il numero di porto è il 21