2013-04-01 42 views

回答

51

session middleware默認實現通用會話功能,內存存儲。不過,它允許您指定其他存儲格式。

cookieSession middleware,在另一方面,實現餅乾支持存儲(即整個會話序列化到cookie,而不僅僅是一個會話密鑰。它應該只用於當會話數據是怎麼回事保持相對較小

+2

相同同一頁而且,按照我的理解,它(Cookie的會話)只應在會話數據不敏感時使用。假設用戶可以檢查會話的內容,但中間件會檢測數據何時被修改。如果 –

+0

@RyanBales會話數據應該保密的,那麼你應該使用TLS,但在這種情況下,很可能是如表單數據應該保密,所以你應該使用TLS。默認設置會阻止其他網站閱讀這些cookie。這是很難想象的要隱瞞有關從該用戶的用戶的會話信息的情況,但在這種情況下,你簡直在存放前,加密會話數據。 –

5

兩個中間件使用客戶端Cookie來維護用戶的IE 會議方面的區別在於:。

  • 什麼都存儲在cookie和
  • 需要
  • 無論是服務器端的店

下表比較cookieSession middlewaresession middleware 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是,它不需要任何額外的服務器端店內簡單即服務器保持完全無狀態。 session middleware需要一個服務器端存儲。默認的基於內存的會話存儲的一個明顯限制是,當服務器有多個實例時它不起作用;在這種情況下將需要另一種共享存儲(例如數據庫),這使得它相對複雜。雖然在一般,會話中間件是比較常用的,因爲它更靈活(用於存儲敏感數據,或更大的有效載荷等)

+0

很好的答案,謝謝 – swyx

相關問題