2013-04-01 12 views

Odpowiedz

51

Urządzenie session middleware implementuje domyślną funkcję sesji z domyślnym przechowywaniem w pamięci. Pozwala jednak określić inne formaty zapisu.

cookieSession middleware, z drugiej strony, realizuje ciasteczka-backed przechowywanie (czyli cała sesja jest szeregowane do pliku cookie, a nie tylko kluczem sesji. Należy naprawdę być stosowany tylko wtedy, gdy dane sesji będzie pozostać stosunkowo niewielka

+2

I, jak rozumiem, to (sesja cookie) powinny być używane tylko wtedy, gdy dane sesji nie są poufne. Zakłada się, że użytkownik może kontrolować zawartość sesji, ale oprogramowanie pośrednie wykryje, kiedy dane zostały zmodyfikowane. –

+0

@RyanBales, jeśli dane sesji powinny pozostać prywatne, powinieneś używać TLS, ale w takim przypadku jest prawdopodobne, że np. Dane formularzy powinny być również prywatne, więc i tak powinieneś używać TLS. Ustawienia domyślne uniemożliwią innym stronom czytanie tych plików cookie. Trudno wyobrazić sobie sytuację, w której chcesz ukryć informacje o sesji użytkownika od tego użytkownika, ale w takim przypadku możesz po prostu zaszyfrować dane sesji przed ich zapisaniem. –

5

obu middleware skorzystać z po stronie klienta plików cookie, aby utrzymać kontekst użytkownika tj sesji różnica polega na:..

  • Co zostanie zapisane w cookies, a
  • potrzebna jest
  • czy sklep server-side

Poniższa tabela porównuje cookieSession middleware i session middleware Sesji WRT:

+----------------+-----------------------+----------------------+ 
|    | 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 jest prostsze w tym, że nie wymaga żadnego dodatkowego sklepu po stronie serwera tj. serwer pozostaje całkowicie bezpaństwowy. session middleware wymaga magazynu po stronie serwera. Oczywistym ograniczeniem domyślnego magazynu sesji opartego na pamięci jest to, że nie działa, gdy istnieje wiele instancji serwera; w takich przypadkach potrzebna będzie alternatywna pamięć współdzielona (np. baza danych), co czyni ją względnie złożoną. Ogólnie rzecz biorąc, oprogramowanie pośrednie sesji jest częściej używane, ponieważ jest bardziej elastyczne (do przechowywania poufnych danych lub większych ładunków itp.).

+0

świetna odpowiedź, dzięki – swyx