はじめに

パフォーマンス

を使う大きな利点の一つは、従来の CGI に対する大幅な速度向上です。 以下に示すのはかなり大雑把なテストの結果です。 このテストは、 Red Had Linux 7.3 の動作している 1.2 GHz の Pentium マシン上で行いました。 4 種類のスクリプトは Ab で呼び出し、いずれのスクリプトも標準モジュールの cgi を import しています (通常の Python CGI スクリプトは、みな cgi の import で始めるからです)。 その後、 Hello! を出力させています。 結果は、並列度 1 で、10000 回のリクエストを処理させたときの値です:

Standard CGI:               23 requests/s
Mod_python cgihandler:     385 requests/s
Mod_python publisher:      476 requests/s
Mod_python handler:       1203 requests/s

Apache HTTP サーバ API

Apache は、リクエストの処理を、リクエストの読み出し,ヘッダの解析,アクセス権限の チェックといった フェイズ に分割します。 各フェイズは ハンドラ (handler) と呼ばれる関数で実装できます。 従来,ハンドラは C で書かかれ Apache モジュールの形にコンパイルされていました。 これに対して, mod_python は Python で Apache ハンドラを書いて,Apache の機能を拡張できます。 Apache のリクエスト処理過程についての詳しい情報は、 Apache Developer Documentation や、 Mod_python - Integrating Python with Apache を参照してください.

今のところ、 mod_python では、Apache HTTP サーバ API の一部だけしかアクセスできません。 このプロジェクトのゴールは、API を100% カバーすることではありません。 それよりも、 API の最も便利な部分や、API をより「Python的に」使う方法にフォーカスしています。

その他の機能

Mod_python は、 Web 開発の領域の様々な機能を提供しています。 HTML に Python を埋め込んで実行するためのパーザ(psp – Python Server Pager)、URL 空間をモジュールや関数のマップするためのハンドラ (Publisher ハンドラ)、セッションのサポート (Session – Session Management)、クッキー操作などです。

参考

Apache HTTP Server Developer Documentation
HTTP 開発者向けの情報です。
Mod_python - Integrating Python with Apache
mod_python と Apache HTTP Server のインタフェースに関する情報です。