GNU/Linux >> Linux Esercitazione >  >> Linux

Che cosa sono i modelli di sviluppo Web senza stato e con stato

Pubblico di destinazione

Sviluppatori che non conoscono la programmazione di siti Web o che potrebbero apprezzare una revisione dei modelli stateless e stateful di progettazione del sito.

Introduzione

I modelli stateful e stateless del comportamento delle applicazioni software definiscono il modo in cui il browser Web di un utente comunica con un server Web. Nei primi anni del Web, i siti tendevano ad essere apolidi. Le pagine erano statiche, non variavano da utente a utente. Successivamente, i siti Web includevano il modello stateful, che forniva pagine con informazioni uniche per ciascun utente. Le applicazioni web stateful sono essenziali per l'e-commerce moderno come i rivenditori online e le banche, ma richiedono una programmazione sofisticata per funzionare in modo efficace.
.

Modello apolide

Nella forma pura del modello stateless, un programma client effettua una richiesta a un server delle applicazioni, che invia i dati al client. Il server tratta tutte le connessioni client allo stesso modo e non salva alcuna informazione da richieste o sessioni precedenti. Un sito Web che serve una semplice pagina Web statica è un buon esempio del modello stateless. Il server riceve le richieste per le pagine che ospita e invia i dati della pagina ai browser richiedenti, proprio come un cuoco che prepara pasti per i commensali.
.

Modello stateful

Quando un'applicazione opera in modalità stateful, il server tiene traccia di chi sono gli utenti e cosa fanno da una schermata all'altra. Preservare lo stato delle azioni degli utenti è fondamentale per avere una sessione significativa e continua. In genere inizia con un login con ID utente e password, stabilendo uno stato iniziale per la sessione. Mentre un utente naviga nel sito, lo stato può cambiare. Il server mantiene lo stato delle informazioni dell'utente per tutta la sessione fino al logout.
.

Portare gli Stati verso gli apolidi

Molti siti Web generano pagine in modo dinamico, basandosi meno su file HTML statici. Il browser dell'utente riceve i dati della pagina da un server Web e li visualizza come se fosse una pagina statica. Inoltre, le pagine dinamiche consentono al server di "ricordare" l'utente e creare continuità da una pagina all'altra. Per far funzionare la continuità, uno sviluppatore può utilizzare una serie di trucchi, aggiungendo funzionalità stateful al modello stateless. Ad esempio, quando un utente accede al sito Web di una banca, il server crea informazioni su questa sessione. Le informazioni possono risiedere nella memoria del server, ma possono anche essere archiviate nel browser. Il server tiene traccia della tua sessione registrando informazioni univoche sulla sessione, come l'indirizzo IP di un utente. Inoltre, lo sviluppatore può creare variabili lato server aggiuntive utilizzate dai programmi sul server. Queste variabili rimangono intatte finché una sessione è attiva, scomparendo al logout o alla scadenza della sessione.
.

Dati lato browser

Esistono alcune opzioni diverse per mantenere i dati della sessione nel browser. Uno è il cookie , un tipo speciale di token del browser. Un server web può creare un cookie e memorizzarlo nel browser dell'utente in modo che possa interrogarlo durante la sessione. Un browser memorizza questi cookie e li restituisce su richiesta del server. I cookie possono, facoltativamente, scadere con la sessione o persistere in modo pressoché permanente. Se permangono, tuttavia, i dati possono essere letti da qualsiasi sito, rivelando potenzialmente informazioni che l'utente potrebbe non condividere. La raccolta di dati indiscriminata e non autorizzata da parte di molte aziende dall'uso dei cookie ha portato a un senso di sfiducia da parte di molti utenti di Internet. Molti utenti, a loro volta, hanno risposto impostando i propri browser in modo da bloccare i cookie, rendendo i cookie meno disponibili per scopi legittimi.

Oltre ai cookie, puoi comunicare i dati della sessione a un server inserendo variabili nell'URL, contrassegnate da un punto interrogativo, come in questo esempio:

http://mysite.net/anypage.php?userID=54321&orderID=51926

Si noti che la prima variabile è contrassegnata da un punto interrogativo e le variabili successive utilizzano una e commerciale.

Molti siti utilizzano gli URL per trasferire i dati dal client al server. Uno svantaggio è che i dati dell'URL sono visibili a chiunque. In alcuni casi è possibile sfruttare i dati URL per ottenere informazioni non autorizzate o sovvertire in altro modo la sicurezza di un sito. Inoltre, un hacker che monitora il tuo traffico Internet può intercettare facilmente i dati degli URL. Puoi, tuttavia, oscurare i dati URL passandoli in forma crittografata o hash, migliorandone la sicurezza.
.

Carico del server

Quando si eseguono siti Web che utilizzano la modalità stateless, un server cloud svolge un lavoro relativamente semplice, fornendo pagine senza la necessità di salvare i dati dell'utente. Un sito con stato ha un sovraccarico di memoria aggiuntivo per ogni utente, necessario per archiviare i dati della sessione di base, le risposte degli utenti e altri dati richiesti dall'applicazione. Per i siti che gestiscono migliaia di sessioni simultanee, i requisiti di memoria aggiuntivi si sommano. Un sito senza stato che si basa principalmente su pagine statiche è anche più semplice per la CPU del server. Al contrario, un sito con stato dipende maggiormente dal contenuto dinamico generato dal programma, richiedendo molta più potenza della CPU per sessione. Uno staff operativo esperto tiene d'occhio la memoria del server e i dati sulle prestazioni della CPU, alla ricerca di colli di bottiglia che possono influire sulla reattività di un sito.
.

Conclusione

Nella moderna Internet, un sito Web completamente senza stato ha un uso limitato, poiché sempre più contenuti si basano sul tenere traccia dei dati dalla sessione di un visitatore con quel sito. Per creare siti Web dinamici che "conoscano" i propri clienti, uno sviluppatore Web deve tenere a mente le differenze tra le modalità stateful e stateless e i vantaggi e gli svantaggi di ciascun approccio per quanto riguarda la pagina o l'elemento particolare della pagina.

Atlantic.net offre hosting VPS e servizi di hosting gestito che includono un livello di servizi gestiti business-essential ai tuoi pacchetti di hosting. Contattaci oggi per ulteriori informazioni.

Scopri di più sui nostri servizi di hosting VPS e sui server privati ​​virtuali.

.
.


Linux
  1. Che cos'è un server Web e come funziona un server Web?

  2. Spiegazione del Web decentralizzato e delle reti P2P

  3. Nuclide:un IDE aperto per lo sviluppo Web e mobile

  4. Cosa puoi fare con un VPS e un Cloud Server?

  5. Domande frequenti su disco di sistema e disco dati

Come installare il server Web OpenLiteSpeed ​​con MariaDB e PHP

Installa MySQL su Windows Server 2008 R2 e 2012

Scopri CyberPanel e installalo per controllare il tuo host web

Sviluppo Web e Tecniche Avanzate con Linux su Windows (WSL)

Nozioni di base sull'hosting Web e scelta di un provider

Qual è la differenza tra DMA e IO mappato in memoria?