Argomento 4: message-oriented communication Flashcards
In HTTP, che cosa significa che una operazione è “safe”?
- Che l’esecuzione multipla della stessa richiesta produce lo stesso effetto di una singola esecuzione
- Che l’esecuzione della richiesta non modifica lo stato della risorsa coinvolta.
- Che l’esecuzione multipla della stessa richiesta produce lo stesso effetto di un’altra
operazione. - Che l’esecuzione della richiesta modifica lo stato della risorsa coinvolta.
- Che l’esecuzione della richiesta non modifica lo stato della risorsa coinvolta.
In HTTP, quale è una funzione primaria delle coppie nome-valore contenute nell’header?
- Indicare il formato dei dati del payload
- Trasferire i parametri passati con le richieste
- Indicare la dimensione dell’intero messaggio HTTP
- Definire il valore dei cookie scambiati tra client e server
- Indicare il formato dei dati del payload
Cosa significa che il metodo GET è idempotente?
- La GET è idempotente nel senso che l’effetto di più richieste identiche di ottenere una risorsa è lo stesso di quello di una sola risorsa, la GET è sicura quindi non altera lo stato della risorsa.
- |non abbiamo altre opzioni|
- La GET è idempotente nel senso che l’effetto di più richieste identiche di ottenere una risorsa è lo stesso di quello di una sola risorsa, la GET è sicura quindi non altera lo stato della risorsa.
Nella comunicazione a messaggi è fondamentale restituire un codice di Stato nella risposta?
- Sì, perché il client deve sapere interpretare i dati che riceve
- No, perché il sistema operativo può sollevare un’eccezione in caso di problemi
- Sì, perché non c’è memoria condivisa
- No, perché il client può interrogare il server per conoscere l’esito di una richiesta
- Sì, perché non c’è memoria condivisa
In una comunicazione a messaggi, transiente significa che il messaggio:
- Viene perso se il ricevente non è pronto a riceverlo
- Transita dal middleware prima di essere consegnato al ricevente
- Viene considerato dal middleware per essere consegnato al ricevente
- Viene affidato al middleware e il controllo ritorna al mittente
- Viene perso se il ricevente non è pronto a riceverlo
Nella comunicazione a messaggi è fondamentale indicare la dimensione del payload in
risp?
- No se il payload ha codifica (e.g. UFT-8) e formato noti a priori
- Si, se la comujnicazione avviene per byte stream
- No perché posso sempre usare un carattere terminatore (e.g. CFLF)
- Si, perché non è mai possibile usare un carattere terminatore (e.g. CFLF)
- Si, perché non è mai possibile usare un carattere terminatore (e.g. CFLF)
In una comunicazione che utilizzi un message broker, il formato dei messaggi deve essere uguale per tutti i partecipanti?
- Si perché il mittende invia messaggi in un solo formato
- No, perché il broker può fare una trasformazione tra formati
- Si perché i riceventi non sanno in che formato ricevono i messaggi
- No, perché i riceventi sanno in che formato ricevono i messaggi
- No, perché il broker può fare una trasformazione tra formati
In una comunicazione a messaggi, persistente significa che il messaggio:
- Viene perso se il ricevente non è pronto a riceverlo
- Transita dal middleware prima di essere consegnato al ricevente
- Viene conservato dal middleware per essere consegnato al ricevente quando questi è pronto a riceverlo
- Viene affidato al middleware e il controllo ritorna al mittente
- Viene conservato dal middleware per essere consegnato al ricevente quando questi è pronto a riceverlo
Disegnare il formato dei massaggi request/response HTTP
i’m poor
Parlare di HTTP
HTTP è un protocollo di livello applicativo che utlizza TCP.
è basato sul modello client server.
Ha una porta dedicata (80), ed è stateless.
Il fatto che sia stateless implica che ogni richista deve avere tutte le informazioni correlate perché possa essere portata a termine dal server.
Si può introdurre stato tramite i cookie.
Quali sono i principali metodi HTTP?
I principali metodi HTTP sono:
- GET: ritorna la rappresentazione di una risorsa che si trova sul server.
- POST: comunica dati da elaborare o crea una nuova risorsa e la mette nel server.
- PUT: crea una nuova risorsa oppure, se già esiste, la sostiuisce.
- HEAD: come la GET ma ritorna solo l’header.
- DELETE: elimina una risorsa dal server.
- PATCH: aggiorna una risorsa sul server
Quando si usa la POST e quando la PUT?
Quando si crea una nuova risorsa, se è il server a scegliere l’URI, allora si usa la POST, se è invece il client a scegliere l’URI, allora si usa la PUT
Elencare alcuni dei codici di stato di HTTP
- 1xx: il server ha ricevuto la richiesta e la sta svolgendo
- 2xx: richiesta eseguita con successo
- 3xx: reindirizzamento
- 4xx: errore del client
- 5xx: errore del server
Parlare del sistema di caching di HTTP
Il sistema di caching usato da HTTP permette di risparmiare banda e risorse, funziona sull’ idea che una volta data una risorsa ad un client, se esso la richiede tramite una GET condizionale, allora gliela si ritorna di nuovo solo se è stata modificata dall’ultima volta che la ha richiesta.
Cosa significa che una comunicazione è persistente e, di conseguenza, cosa significa che una comunicazione non lo sia?
Una comunicazione persistente è una comunicazione nella quale un client ed un server utilizzano una sola connesisone TCP per tutte le richieste del client, di default HTTP 1.1 è in modalità persistente, quindi non chiude una connessione a meno che non sia il client a richiederlo esplicitamente nella richiesta.
D’altra parte, in alcuni rari casi potrebbe essere più efficiente se si effettua una connessione per ogni richiesta del client, ciò si può realizzare tramite HTTP 1.0