mod_python の機能について深く調べてみたいのなら、ハンドラ (handler) とは 何かを知っておく必要があります。
Apache はリクエストを複数の フェイズ (phase) で処理します。 例えば、最初のフェイズはユーザを認証し、次のフェイズではユーザが特定のファイル を閲覧する許可を有しているか調べ、続いて (次のフェイズで) ファイルを読み出して クライアントに送信する、といった具合です。典型的な静的ファイルに対する要求 には、(1) 要求された URI を実際のファイルの場所に変換する、 (2) ファイルを 読み出してクライアントに送信する、 (3) リクエストをログに記録する、という 三つのフェイズがあります。厳密にどのフェイズがどのように処理されるかは、 設定によって大きく変わります。
ハンドラ (handler) は、一つのフェイズを処理する関数です。 ある特定のフェイズの処理に対して、複数のハンドラが利用できることもあり、 この場合各ハンドラは Apache から順番に呼び出されます。各フェイズに対して、 Apacheのデフォルトのハンドラが呼び出され(デフォルトハンドラのほとんどは デフォルトで基本的な機能しかしないか、あるいは全く何も行いません)、 続いてmod_python のような Apache モジュールで提供されている追加の ハンドラが呼び出されます。
mod_python では、提供可能な全てのApacheハンドラを提供しています。
デフォルトのmod_python ハンドラは設定ディレクティブで特に設定
しない限りなにも行いません。mod_python の設定ディレクティブは
(PythonAuthenHandlerのように)"Python" で始まって
"Handler" で終わり、あるフェーズをあるPython上の機能に
関連づけています。従って、mod_python の主要な機能は Apache ハンドラと
みなさんのような開発者が書いたPython 関数との間を取り持つ役目という
ことになります。
もっともよく使われているハンドラはPythonHandler です。
このハンドラでは、実際のコンテンツを提供する、いわゆるリクエストのフェイズを
処理します。このハンドラには特定の機能を表す名前がないため、しばしば
汎用(generic) ハンドラと呼ばれます。
このハンドラに相当するデフォルトの Apache の動作は、ファイルの読み込みと
クライアントへの送信です。自作のほとんどのアプリケーションではこのハンドラを
オーバライドすることになるでしょう。
利用できるハンドラ一覧を見るには、5節、
Apache ディレクティブ を参照してください。