Possiamo considerare l'interazione di un client con un server web con lo stato se il server web mantiene lo stato tramite variabili di sessione o cookie?

1

Un po 'confuso con la nozione di architetture stateful / stateless. Perdonami se non sono chiaro.

Domande: possiamo considerare l'interazione di un client con un server web con lo stato se il server Web mantiene lo stato tramite variabili di sessione o cookie? Cosa succede se ipotizziamo che qualsiasi modifica a queste informazioni provenga dal lato client in qualsiasi modo e non dipenda da altri utenti?

  • E il negozio web di Amazon? Sebbene lo stato possa cambiare e non essere riflesso automaticamente nel client ... se il client tenta di operare su dati non aggiornati, il sistema lo riconosce e agisce in modo appropriato. È ancora puramente senza stato? O da qualche parte in mezzo?

  • Che cosa succede se abbiamo aggiunto un livello di script java che ha costantemente interrogato il server ogni secondo per mantenere aggiornato il lato client? A un livello astratto non sarebbe considerato stato perché il client avrà continuamente uno stato aggiornato?

Definizioni / Modelli con cui sto provando a lavorare:

Architettura stateless dei siti Web: HTTP è un protocollo stateless. Il client effettua una richiesta web HTTP. Il server calcola / elabora la richiesta e restituisce al cliente le informazioni appropriate sullo stato corrente del sito web. Mentre il cliente ha queste informazioni, il sito web può cambiare stato e queste modifiche non saranno riflesse sul lato client fino a quando il client non effettuerà un'altra richiesta web.

Architettura di stato: il client può semplicemente funzionare assumendo che tutti i dati visualizzati rappresentino lo stato effettivo del server.

    
posta donsiuch 27.03.2014 - 17:25
fonte

1 risposta

6

HTTP è un protocollo stateless in quanto ogni richiesta è una transazione indipendente. Ciò che è venuto in precedenza o ciò che è previsto verrà dopo non ha alcun effetto su una singola richiesta.

Tuttavia, questo non significa che tutto ciò che fai su Internet è senza stato. Siti come Amazon store states, ovviamente. Ricordano quello che hai fatto in passato e sanno cosa stai facendo nel mezzo. Il carrello acquisti ricorda quali articoli hai aggiunto su molte richieste HTTP individuali.

I siti web aggirano la natura stateless del protocollo HTTP facendo due cose fondamentali:

  • Memorizzazione dello stato di ciascun utente sul server , ad esempio il carrello della spesa, il profilo e la cronologia di ciò che hai acquistato.
  • Un metodo per identificare lo stesso utente su più richieste , tali cookie memorizzati sul lato client, l'indirizzo IP e le informazioni di stato incorporati nell'origine di una pagina Web che è stata pubblicata. In pratica, più metodi di identificazione vengono spesso usati insieme.

Anche se ogni richiesta è indipendente dal punto di vista del protocollo, l'applicazione di questi metodi fornisce un contesto per ogni pagina che viene fornita all'utente. L'apolide è reso statico.

    
risposta data 27.03.2014 - 17:44
fonte

Leggi altre domande sui tag