Argomento 4: message-oriented communication Flashcards

1
Q

In HTTP, che cosa significa che una operazione è “safe”?

  1. Che l’esecuzione multipla della stessa richiesta produce lo stesso effetto di una singola esecuzione
  2. Che l’esecuzione della richiesta non modifica lo stato della risorsa coinvolta.
  3. Che l’esecuzione multipla della stessa richiesta produce lo stesso effetto di un’altra
    operazione.
  4. Che l’esecuzione della richiesta modifica lo stato della risorsa coinvolta.
A
  1. Che l’esecuzione della richiesta non modifica lo stato della risorsa coinvolta.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

In HTTP, quale è una funzione primaria delle coppie nome-valore contenute nell’header?

  1. Indicare il formato dei dati del payload
  2. Trasferire i parametri passati con le richieste
  3. Indicare la dimensione dell’intero messaggio HTTP
  4. Definire il valore dei cookie scambiati tra client e server
A
  1. Indicare il formato dei dati del payload
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cosa significa che il metodo GET è idempotente?

  1. 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.
  2. |non abbiamo altre opzioni|
A
  1. 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Nella comunicazione a messaggi è fondamentale restituire un codice di Stato nella risposta?

  1. Sì, perché il client deve sapere interpretare i dati che riceve
  2. No, perché il sistema operativo può sollevare un’eccezione in caso di problemi
  3. Sì, perché non c’è memoria condivisa
  4. No, perché il client può interrogare il server per conoscere l’esito di una richiesta
A
  1. Sì, perché non c’è memoria condivisa
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

In una comunicazione a messaggi, transiente significa che il messaggio:

  1. Viene perso se il ricevente non è pronto a riceverlo
  2. Transita dal middleware prima di essere consegnato al ricevente
  3. Viene considerato dal middleware per essere consegnato al ricevente
  4. Viene affidato al middleware e il controllo ritorna al mittente
A
  1. Viene perso se il ricevente non è pronto a riceverlo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Nella comunicazione a messaggi è fondamentale indicare la dimensione del payload in
risp?

  1. No se il payload ha codifica (e.g. UFT-8) e formato noti a priori
  2. Si, se la comujnicazione avviene per byte stream
  3. No perché posso sempre usare un carattere terminatore (e.g. CFLF)
  4. Si, perché non è mai possibile usare un carattere terminatore (e.g. CFLF)
A
  1. Si, perché non è mai possibile usare un carattere terminatore (e.g. CFLF)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

In una comunicazione che utilizzi un message broker, il formato dei messaggi deve essere uguale per tutti i partecipanti?

  1. Si perché il mittende invia messaggi in un solo formato
  2. No, perché il broker può fare una trasformazione tra formati
  3. Si perché i riceventi non sanno in che formato ricevono i messaggi
  4. No, perché i riceventi sanno in che formato ricevono i messaggi
A
  1. No, perché il broker può fare una trasformazione tra formati
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

In una comunicazione a messaggi, persistente significa che il messaggio:

  1. Viene perso se il ricevente non è pronto a riceverlo
  2. Transita dal middleware prima di essere consegnato al ricevente
  3. Viene conservato dal middleware per essere consegnato al ricevente quando questi è pronto a riceverlo
  4. Viene affidato al middleware e il controllo ritorna al mittente
A
  1. Viene conservato dal middleware per essere consegnato al ricevente quando questi è pronto a riceverlo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Disegnare il formato dei massaggi request/response HTTP

A

i’m poor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Parlare di HTTP

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quali sono i principali metodi HTTP?

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quando si usa la POST e quando la PUT?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Elencare alcuni dei codici di stato di HTTP

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Parlare del sistema di caching di HTTP

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Cosa significa che una comunicazione è persistente e, di conseguenza, cosa significa che una comunicazione non lo sia?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cosa significa che una comunicazione è transiente e, di conseguenza, cosa significa che una comunicazione non lo sia?

A

Una comunicazione transiente è una comunicazione dove si hanno dei buffer tra client e server, questo permette che client e server non debbano essere contemporaneamente attivi perché la comunicazione abbia successo, essendoci i buffer, se il client effettua una richiesta ad un server momentaneamente inattivo, sarà il middleware a conservare la richiesta fino a che il server non si riattiverà.

D’altra parte, in una comunicazione non transiente si ha la necessità che client e server siano attivi contemporaneamente perché lo scambio di messaggi avvenga con successo, altrimenti i messaggi vengono semplicemente eliminati

17
Q

Cosa significa che una comunicazione è sincrona e di conseguenza, cosa significa che una comunicazione non lo sia?

A

Una comunicazione sincrona è una comunicazione dove il chiamante blocca l’esecuzione del proprio task fino a che il chiamato non svolge la richiesta, questo significa che , ad esmepio, un utente che effettua un’azione su un browser noterà un lieve freeze della pagina perché essa sta aspettando che il server le risponda.

La cumunicazione asincrona, che è preferibile a quella sincrona, è invece più veloce nell’aggiornamento dei dati di una pagina web, e si risolve anche l’effetto freeze che si prova con la comunicazione sincrona

18
Q

Descrivere la comunicazione basata sulla ricezione dei messaggi

A

Nella comunicazione basata sulla ricezione dei messaggi, una volta che un client effettua un richiesta, appena esso ottiene un riscontro di ricezione della richiesta dal server, il client riprende ad eseguire il proprio task.

19
Q

descrivere la comunicazione basata sulla risposta ai messaggi

A

Nella comunicazione basata sulla risposta ai messaggi, un client riprende ad eseguire il proprio task solo una volta che il server ha soddisfatto la richiesta ricevuta in precedenza dal client