3

セッションがどのように管理されているかについて、Connect と Express のソースを少し読んでいます。私はまだセッションの基礎を学んでいますが、メモリの処理方法がわかりません。

サーバーがセッション データをメモリに保持し、セッション ID を使用してデータにアクセスすることはわかっています。サーバーは ID を保持する Cookie (セッション Cookie だと思いますか?) を送信し、ユーザーがサイトにアクセスすると、セッションが再び使用されます。

これはばかげた質問ですが、私の質問は、ユーザーがセッション タイムアウトを更新せずに Cookie を削除したり期限切れになったりした場合、メモリはどのように管理されるのでしょうか? データは永久にメモリに残りますか?

編集: PHPや他の言語を見て、セッションをクリーンアップする方法のドキュメントを見ました。彼らはガベージコレクターを持っているようです(期限切れのセッションをスキャンして削除します)。Connect/Express にはこの機能がありますか?

4

1 に答える 1

4

Connect (ミドルウェアMemoryStoreのデフォルトのセッション ストレージ モジュール) は、期限切れのセッションをガベージ コレクションしません。アクセスされたときにのみ有効期限を確認します(その時点で、セッションの有効期限が切れている場合はストレージ削除されます)。そのため、ユーザーが Cookie を消去すると、セッションは二度とアクセスされず、. したがって、本番環境で使用すべきではないミドルウェア ドキュメントの警告です。SessionMemoryStoreSessionMemoryStore

Connect は、他のセッション ストレージ モジュールを提供していないため、ミドルウェアStoreに含まれる抽象モジュールに基づいて独自のモジュールを提供する必要があります。Session

于 2012-09-17T10:40:23.620 に答える