2

私はWebプログラミングに比較的慣れていません。HTMLページを生成する小さなC++サーバーを作成しました。私が正しく理解していれば、fastcgiメソッドは次のとおりです。

                         |                    Site1
                         |  +------------+   +--------------+   +-------------+
                         |--|Apache/nginx|---|fastcgi socket|---|My C++ server|
                         |  +------------+   +--------------+   +-------------+
                       ........................................................
                         |                    Site2                             
   +-----------------+   |  +------------+   +--------------+   +-------------+
===|TCP from Internet|===|--|Apache/nginx|---|fastcgi socket|---|My C++ server|
   +-----------------+   |  +------------+   +--------------+   +-------------+
                         |
                         | <-firewall

私の理解は次のとおりです。間違っている場合は訂正してください

  1. ステップは、誰かがよく知られているアドレスへのTcp/Httpソケットを開くことです。http://www.example.com
  2. ファイアウォールのことなので、背中合わせのユーザーエージェントは、彼はexample.comであり、Webサーバー間でトラフィックルーティングを行っています。
  3. ファイアウォールは、アクセスなどをログに記録するWebサーバー(Apache / nginx)への別のソケットを開きます。
  4. WebサーバーがC++サーバーへの新しいソケットを開きます
  5. 私のC++サーバーはそのfastcgiソケットを取得し、接続を受け入れ、その接続でi/oイベントのポーリングを開始します
  6. そのfastcgi接続にデータが到着すると、それを読み取り、コンテンツをHTTPヘッダーおよびHTTPペイロードとして解析します

だから私の質問は、どのように認証するか、言い換えればユーザーを認識することができるかということです。では、1つの接続が1つのユーザーであるというのは本当ですか?ログイン/ログアウト状態を処理するすべての接続でステートマシンを起動する必要がありますか?したがって、新しい接続が受け入れられると、状態は「ログアウト」され、登録フォームが返送されます。ユーザーを取得したとき、または接続状態のステップを「ログイン」に渡すと、サーバーはパーソナライズされたコンテンツを送信します。

私のC++サーバーはserver1-c++ネットワークサーバー/クライアントフレームワークに基づいています

4

1 に答える 1

2

あなたの質問には本に値する答えが必要です。

5と6は正しいですが、Webサーバーがすべてを処理します。

あなたは本当に小さな達成可能な目標に集中する必要があります。fastcgi認証から始めましょう。「認証Cookie」を使用して検索すると、回答の一部を開始できるはずです。

于 2013-05-25T01:23:04.937 に答える