13

WSGI の機能を理解しようとしていますが、助けが必要です。

これまでのところ、問題のフレームワークに WSGI アダプターがある場合、サーバーとアプリケーションの間の一種のミドルウェアであり、さまざまなアプリケーション フレームワーク (サーバー側に存在する) とアプリケーションとのインターフェイスに使用されることがわかっています。理論的な部分を続けると、サーバーがアプリケーションと通信するために、サーバーが callable (環境変数と start_response 関数の 2 つの引数を取る) を呼び出すことがわかっています。ここで、start_response 関数はサーバー (?) によって提供され、アプリケーションによって使用され、応答ステータスとヘッダーの後に応答本文が続きます。

上に書いたことをほとんど理解していないので、ここに初心者の質問があります: 1) 一般的な通話の流れは何ですか? アプリケーションはサーバーに呼び出し可能オブジェクトを提供し、サーバーはその呼び出し可能オブジェクトを使用し、引数として env_vars および start_response 関数を使用してアプリケーションを呼び出しますか?

2)私を最も混乱させるのは、アプリケーションが要求ヘッダーを送信し、次に応答本文も送信することです。これはどのタイプのリクエストですか?

このようなことに頭を悩ませることができないので、私に教えてください。

ありがとう!

4

1 に答える 1

8

コール フローは次のとおりです。

  1. サーバーは http 接続を取得しました。
  2. サーバーは http リクエスト行とヘッダーを解析し、本文を読み取り、
  3. サーバーは、リクエストに従ってenviron dictを設定します。
  4. サーバーは、 environstart_responseを引数として呼び出し可能なアプリケーションを呼び出します。
  5. アプリケーション呼び出し可能呼び出しstart_responseと応答ステータスおよび応答ヘッダー、
  6. アプリケーションがサーバーにレスポンスボディを返し、
  7. サーバーはクライアントに http 応答を送信します。

2番目の問題については、リクエスト/レスポンスはwsgiプロトコルで定義されたインターフェースです(例: status = '200 OK', response_headers = [('Content-type', 'text/plain')]), httpと同じものではありませんリクエスト/レスポンス。

スタンド ライブラリ モジュールwsgirefを参照として参照できます。

于 2012-08-31T08:01:07.907 に答える