Cap.5 - I protocolli di comunicazione Flashcards
(7 cards)
Cos’è un protocollo di comunicazione?
Un protocollo di comunicazione è un insieme di regole che due entità, parte di un sistema di comunicazione, devono seguire per scambiarsi informazioni. Inoltre, solitamente, un protocollo di comunicazione prevede anche dei meccanismi per sincronizzare la comunicazione e per correggere e/o gestire eventuali errori che possono intercorrere nello scambio dei messaggi.
Come funziona l’Hypertext Transfer Protocol (HTTP)?
L’Hypertext Transfer Protocol, o HTTP, è un protocollo di comunicazione inizialmente sviluppato da Tim Berners-Lee per facilitare l’implementazione del Web, e poi migliorato ed esteso negli anni successivi. È un protocollo basato su metodi di comunicazione di richiesta-risposta: nel caso di HTTP, un client (l’agente che fa la richiesta, ad esempio un browser) manda un messaggio di richiesta di una specifica risorsa, identificata da un URL, ad un server (l’agente che dovrebbe avere informazioni su quella specifica risorsa, ad esempio un server Web), che restituisce al client un messaggio di risposta.
Quali sono le possibili richieste che il client può fare?
GET, che permette di richiedere informazioni sulla risorsa definita dall’URL specificato
PUT permette di creare sul server web contattato la risorsa specificata dall’URL utilizzato nella richiesta, e di associare le informazioni, relative ad essa, incluse nella richiesta effettuata;
DELETE permette di rimuovere dal server web contattato tutte le informazioni relative alla risorsa specificata nella richiesta tramite l’URL;
POST permette di specificare informazioni aggiuntive, incluse nella richiesta, ad una risorsa esistente che già risiede sul server
Questi metodi HTTP sono classificabili come:
- safe, quando il metodo viene usato solo per recuperare delle informazioni dal server web, senza cambiarne lo
stato
- idempotente se molteplici richieste effettuate allo stesso URL hanno lo stesso effetto, sul server web, che effettuare una sola richiesta.
Da quali due parti sono composte le informazioni consegnate tramite http?
Le informazioni sono contenute in due specifiche sezioni del messaggio, rispettivamente chiamate intestazione (header) e contenuto (payload). Tipicamente, una qualunque richiesta o risposta ha sempre l’header specificato, mentre il payload può contenere informazioni come no.
Quale informazione viene riportata nei messaggi di risposta in http?
Le risposte contengono al proprio interno un codice di stato che indica se la richiesta è andata a buon fine o se sono intercorsi dei problemi.
Un codice di stato è un numero di tre cifre, la cui prima cifra (da 1 a 5) definisce la classe di risposta, mentre le altre due sono usate per identificare una specifica motivazione relativa alla risposta.
Le cinque classi di risposta sono:
1. risposta informativa – la richiesta è stata ricevuta e correttamente compresa, e sono necessari alcuni passaggi aggiuntivi (attendere, cambiare protocollo, etc.) per poter ottenere le informazioni sulla risorsa richiesta;
2. successo – la richiesta è stata ricevuta, correttamente compresa, e accettata;
3. redirezione – il client deve effettuare specifiche azioni aggiuntive per completare la richiesta (ad esempio, cercare le informazione sulla risorsa ad un altro URL);
4. errore del client – la richiesta presenta un qualche errore lato client (ad esempio, non si ha il permesso di accedere alla risorsa, non è stata trovata alcuna informazione associata alla risorsa, etc.) e non può essere soddisfatta;
5. errore del server – il server web ha incontrato un qualche problema nel soddisfare la richiesta (ad esempio, server non è disponibile al momento a causa di un sovraccarico di gestione, non supporta il protocollo HTTP utilizzato dalla richiesta, etc.).
Che cos’è un server web?
Come anticipato nel precedente capitolo, un server web è un computer “speciale” che esegue un software specifico che permette di ricevere, gestire, e soddisfare richieste HTTP provenienti da un client, ad esempio un browser. Il nome del server web è incluso nell’URL che identifica la risorsa di cui si vuole ottenere informazioni, nella parte host.
Come fa il browser a indirizzare la richiesta a un preciso server web?
Il client non raggiungono il server tramite il nome che noi vediamo nell’URL, perché un qualunque server web è identificato in modo univoco da una sequenza di quattro numeri separati da punti, ad esempio 130.136.130.1, ove ogni numero può essere un valore che va da 0 a 255. Questo numero si chiama indirizzo IP, dove “IP” è l’acronimo di “Internet Protocol”. In pratica, ogni volta che si fa una richiesta HTTP, in qualche modo viene recuperato l’indirizzo IP del server web a cui mandare la richiesta partendo dal nome di questo indicato nell’URL – il campo host – per poi inviare il messaggio esplicitamente a quell’indirizzo