2016-12-05 6 views
1

私はPython WSGIフレームワークFalconを使ってアプリケーションのバックエンドを作り、Beakerを使ってセッション管理を行っています。プロダクションでは、AWSでGunicornを使用します。Falcon、PythonでBeakerを使用する

は、私が理解することはできませんされてきた何かがあります:

Gunicornは、いくつかの労働者を実行しますので、その環境変数がリクエストをした別のクライアントのために持続意味するのでしょうか?別の言い方をすれば、1人のクライアントだけのためのビーカーセッションであるか、同じGunicornワーカーインスタンスで複数のクライアントが要求を行うことができるのでしょうか?

これは私が私の読書から動作するようにセッションを理解する方法です:

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

私はこれを正しく理解しましたか?

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

答えて

0

私はこれを正しく理解しましたか?

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

Gunicornはいくつかのワーカーを実行するため、環境変数 はリクエストを行ったクライアントごとに持続しますか? 別の言い方をすると、1つのクライアントのみのビーカセッションです。 同じクライアントで要求を行う複数のクライアントが利用できますか? Gunicornワーカーインスタンス?

ビーカセッションデータをサーバ側で保存すると、一意のセッションIDで識別される専用データストアで、クライアント側がセッションIDをクッキー経由で返信し、サーバ(gunicorn worker)がセッションデータを取得できます。

私はこの1つのように、どのようにセッションの動作に関するより詳細な説明を読むことをお勧めします:http://machinesaredigging.com/2013/10/29/how-does-a-web-session-work/

+0

OK、これはかなり良い説明する人です。私はさらにいくつかの研究をしました...あなたはsession.idを前面に返し、その後session.get_by_id(id)を使ってそれ以降のリクエストでそれを取得することができます – JasTonAChair

関連する問題