Che cosè un server senza stato?


Migliore risposta

Senza stato significa che non ha uno stato.

Prendiamo ad esempio un server web. Può essere stateful o stateless.

Stateful significherebbe che il server memorizza alcune informazioni sulla sessione per identificare un utente su più richieste successive. Se la sessione è valida, le richieste avrebbero successo.

Stateless sarebbe lopposto. Il server non memorizzerebbe alcuno stato, ovvero le informazioni sulla sessione per identificare lutente su più richieste successive. Ogni richiesta dovrebbe includere un modo per identificare lutente. Un modo per ottenere ciò è utilizzare un token (ad esempio, il token Web JSON o oAuth). Questo token verrà inviato con ogni richiesta (di solito nelle intestazioni della richiesta).

Ciò elimina la necessità per i server di conservare i dati di sessione, il che influisce sulla scalabilità poiché lo spostamento su più server richiede altrimenti la condivisione dei dati di sessione.

Risposta

Hai mai sentito parlare di qualcosa chiamato “sessioni” nel contesto del Web?

Spiegherò non generalizzando il concetto, ma attenendoti a un incontro più comune che quasi tutti noi abbiamo avuto su Internet o WWW.

I server con stato mantengono le informazioni sullo stato dellutente sotto forma di sessioni. Questo è diverso da “accedere al tuo account” su un sito web. Al giorno doggi, la maggior parte dei siti Web HTTP accessibili tramite il WWW mantengono le informazioni sulla sessione dellutente. Quindi, durante lesecuzione di una sessione, tutte le tue richieste appartengono a quella particolare sessione che è stata aperta quando hai visitato per la prima volta una pagina su quel sito web. Generalmente una sessione viene terminata solo quando chiudi il browser. Il mantenimento delle informazioni sulla sessione aiuta il server web a offrire un servizio personalizzato. Inoltre, le sessioni aiutano anche a monitorare il traffico web simultaneo in qualsiasi momento, offrono funzionalità di sicurezza come il divieto di un utente malintenzionato che sta tentando di arrestare il server inviando numerose richieste al server (probabilmente utilizzando la stessa sessione stabilita). Infine le sessioni vengono utilizzate per “accedere” al sito web. Una volta effettuato laccesso al sito web, il tuo identificatore univoco viene salvato dal servizio web nella sessione che avevi aperto e per tutte le tue richieste successive il server web sa che sei tu ad accedere al servizio.

Stateless i server daltra parte non mantengono alcuna informazione di stato per lutente. Ogni richiesta è completamente indipendente dalla richiesta precedente. Larchitettura senza stato più comune che utilizza HTTP è REST (REpresentational State Transfer) che viene utilizzato per progettare API web. I server senza stato possono ancora essere in grado di identificare lutente se la richiesta al servizio include un ID utente univoco che è stato precedentemente assegnato allutente. Ma quellID utente dovrà essere passato in ogni richiesta, a differenza del caso dei server con stato che mantengono questo ID utente nella sessione e i dati della richiesta non devono necessariamente contenere questo ID.

Attraverso questa risposta io Abbiamo cercato di sottolineare le principali differenze tra i server con stato e senza stato. Le differenze possono essere estese a scenari più generalizzati.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *