1

Python WSGI フレームワークの Falcon を使用してアプリ バックエンドを作成し、Beaker を使用してセッション管理を処理しています。本番環境では、AWS で Gunicorn を使用します。

私が理解できなかったことがあります:

Gunicorn は複数のワーカーを実行しますが、これは、リクエストを行ったさまざまなクライアントに対して環境変数が保持されるということですか? 別の言い方をすれば、ビーカー セッションは 1 つのクライアント専用ですか? それとも、同じ Gunicorn ワーカー インスタンスでリクエストを行う複数のクライアントが利用できますか?

これは、私の読書からセッションが機能することを理解する方法です。

ユーザーが私のアプリにログインすると、user_id が Beaker とのセッションに追加されます。同じクライアントからの今後のリクエストでは、この user_id がセッション dict に格納されます。これで、そのクライアントからの今後のリクエストは、セッションに保存されている変数にアクセスできるようになります。各クライアントには独自のセッション データがあります。

私はこれを正しく理解していますか?

現在の方法は、(ログインが成功したときに) クライアントに ID を返し、さらにユーザー情報が必要な場合にバックエンドに渡すことです。

4

1 に答える 1

0

私はこれを正しく理解していますか?

はい、ほとんどの場合、そうです。

Gunicorn は複数のワーカーを実行しますが、これは、リクエストを行ったさまざまなクライアントに対して環境変数が保持されるということですか? 別の言い方をすれば、ビーカー セッションは 1 つのクライアント専用ですか? それとも、同じ Gunicorn ワーカー インスタンスでリクエストを行う複数のクライアントが利用できますか?

ビーカーはサーバー側でセッション データを保存し、一意のセッション ID で識別される専用のデータストアに保存します。クライアント側は Cookie を介してセッション ID を送り返し、サーバー (gunicorn ワーカー) はセッション データを取得できます。

次のように、セッションがどのように機能するかについてのより詳細な説明を読むことをお勧めします

于 2016-12-05T06:57:57.497 に答える