18.18.3 RequestHandlerオブジェクト

要求処理クラスでは、新たな handle() メソッドを定義 しなくてはならず、また以下のメソッドのいずれかを上書きすることができます。 各要求ごとに新たなインスタンスが生成されます。

finish( )
handle() メソッドが呼び出された後、何らかの後始末を行うために 呼び出されます。標準の実装では何も行いません。setup() または handle() が例外を送出した場合には、この関数は呼び出されません。

handle( )
この関数では、クライアントからの要求を実現するために必要な全ての作業を 行わなければなりません。デフォルト実装では何もしません。 この作業の上で、いくつかのインスタンス属性を 利用することができます; クライアントからの要求は self.request です; クライアントのアドレスは self.client_address です; そしてサーバごとの情報にアクセスする場合には、サーバインスタンスを self.server で取得できます。

self.request の型はサービスがデータグラム型かストリーム型かで 異なります。ストリーム型では、self.request はソケットオブジェクト です; データグラムサービスでは、self.request は文字列になります。 しかし、この違いは要求処理サブクラスのStreamRequestHandlerDatagramRequestHandlerを使うことで隠蔽することができます。 これらのクラスでは setup() および finish() メソッド を上書きしており、self.rfile および self.wfile 属性を 提供しています。 self.rfile および self.wfile は、要求データを取得したり クライアントにデータを返すために、それぞれ読み出し、書き込みを行うことが できます。

setup( )
handle() メソッドより前に呼び出され、何らかの必要な 初期化処理を行います。標準の実装では何も行いません。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。