2012-04-10 10 views
5

Desideravo che gli altri mi spiegassero, quale approccio è meglio: utilizzare una sessione o progettarla senza sessione. Stiamo iniziando lo sviluppo di una nuova applicazione web e non abbiamo ancora deciso quale percorso seguire.Progettazione dell'applicazione Web: sessione o sessione senza

Session-less design è IMO più preferibile:

Pro:

  1. scalabilità. Possiamo avere tutti i server che vogliamo senza dover condividere una sessione utente. Ognuno di essi può elaborare le richieste (ad esempio bilanciamento del carico tramite round robin).
  2. Salva le risorse del server. Non è necessario allocare memoria sul lato server (di nuovo, scalabilità).
  3. Nessun ripristino dopo il riavvio del server.

Contro:

  1. dover tenere alcune informazioni relative all'utente nei cookie (non critico).
  2. Richiede più codice (ma non molto codice).

Ci sono argomenti che dobbiamo occuparci prima di prendere la decisione finale?

+0

Stack Overflow non è un buon posto per la discussione aperta. Vedi http://stackoverflow.com/faq –

+0

Ripresentazione della domanda in forma più appropriata. –

risposta

4

Le app di oggi possono diventare rapidamente estremamente grandi (basta dare un'occhiata a tutti quegli strumenti "piccoli e semplici" come pastebin, jsfiddle, ecc.). E a un certo punto una macchina di fascia alta 16 core non è abbastanza (alcune persone potrebbero dire "devi ricodificare la tua app per risparmiare energia della cpu bla-bla", ma anche il limite di connessione http per server è un problema) . Quindi, se hai intenzione di costruire un'applicazione pubblica che potrebbe diventare più popolare del previsto, iniziare "senza sessione" è la strada da percorrere! Ad essere onesti, ciò influenzerà solo le persone che scrivono cose veramente grandi.

I professionisti killer per le sessioni sono: molto meno traffico verso il database mySQL e codifica molto più semplice. Ma dovrai riscrivere l'intero sistema quando la tua app diventerà grande.

+1

Penso che non sia necessario avere molto più traffico su mySQL: è sufficiente tenere tutti gli utenti in memoria (ad esempio una grande tabella hash per id utente - che è assolutamente fattibile). –