2013-04-01 4 views

Antwort

51

Die session middleware implementiert generische Sitzungsfunktionalität mit In-Memory Speicher standardmäßig. Sie können jedoch auch andere Speicherformate angeben.

Die cookieSession middleware, auf der anderen Seite setzt Cookie-backed Speicher (dh die gesamte Sitzung zu dem Cookie serialisiert wird, anstatt nur einen Sitzungsschlüssel. Es sollte wirklich nur dann verwendet werden, wenn die Sitzungsdaten werden Verwendung von clientseitigen Cookies zu bleiben relativ klein

+2

Und wie ich es verstehe, (Cookie-Sitzung) sollte nur verwendet werden, wenn Sitzungsdaten nicht empfindlich sind. Es wird angenommen, dass ein Benutzer den Inhalt der Sitzung überprüfen könnte, aber die Middleware erkennt, wenn die Daten geändert wurden. –

+0

@RyanBales sollten die Sitzungsdaten privat gehalten werden, dann sollten Sie TLS verwenden, aber in diesem Fall ist es wahrscheinlich, dass z. Formulardaten sollten auch privat gehalten werden, also sollten Sie TLS trotzdem verwenden. Die Standardeinstellungen verhindern, dass andere Websites diese Cookies lesen. Es ist schwierig, sich eine Situation vorzustellen, in der Sie Informationen über die Sitzung eines Benutzers vor diesem Benutzer verbergen möchten. In diesem Fall können Sie jedoch die Sitzungsdaten vor dem Speichern verschlüsseln. –

5

Both Middle machen ein Benutzerkontext dh Session halten der Unterschied liegt in:..

  • Was in den Cookies gespeichert wird, und
  • Ob serverseitige Speicher
  • benötigen

Die folgende Tabelle vergleicht cookieSession middleware und session middleware WRT Sessions:

+----------------+-----------------------+----------------------+ 
|    | Client-side store | Server-side store | 
|    |  (cookie)  | (in-memory, db ..) | 
+----------------+-----------------------+----------------------+ 
| Middleware  | Used? | Content | Used? | Content | 
+----------------+--------+--------------+-------+--------------+ 
| session  | Yes | Session ID | Yes | Session data | 
+----------------+--------+--------------+-------+--------------+ 
| cookie-session | Yes | Session data | No |  N/A  | 
+----------------+--------+--------------+-------+--------------+ 

cookieSession middleware ist einfacher, dass es erfordert keinen zusätzlichen Server-Side-Speicher dh der Server bleibt vollkommen zustandslos. session middleware erfordert einen serverseitigen Speicher. Eine offensichtliche Einschränkung des standardmäßigen speicherinternen Sitzungsspeichers besteht darin, dass er nicht funktioniert, wenn mehrere Instanzen eines Servers vorhanden sind. In solchen Fällen wird ein alternativer gemeinsamer Speicher (z. B. eine Datenbank) benötigt, was ihn relativ komplex macht. Im Allgemeinen wird jedoch die Session Middleware häufiger verwendet, da sie flexibler ist (zum Speichern sensibler Daten oder größerer Payloads etc.)

+0

große Antwort, danke – swyx

Verwandte Themen