## 11.2.1 はじめに

CGI スクリプトは、HTTP サーバによって起動され、通常は HTML の `<FORM>` または `<ISINDEX>` エレメントを通じてユーザ が入力した内容を処理するために使われます。

ほとんどの場合、CGI スクリプトはサーバ上の特殊な cgi-bin ディレクトリ下に置かれます。HTTP サーバはまずリクエストの全ての 情報 (クライアントのホスト名、リクエストされている URL、クエリ 文字列、その他諸々) をスクリプトを動作させるシェルの環境変数 に設定し、スクリプトを実行した後、スクリプトの出力をクライアント に送信します。

スクリプトの入力端もまたクライアントに接続されており、フォーム上の データは時としてこの経路を通じて読み出されます; その他の場合、 フォームデータは URL の一部分である ``クエリ文字列'' を介して 渡されます。このモジュールでは、上記のケースの違いに注意しながら Python スクリプトに対しては単純なインタフェースを提供するための ものです。このモジュールではまた、スクリプトをデバッグするための ユーティリティを多数提供しています。また、最近はフォームを 経由したファイルのアップロードをサポートしています (ブラウザ側 がサポートしていればです -- Grail 0.3 および Netscape 2.0 は サポートしています。)

CGI スクリプトの出力は 2 つのセクションからなり、空行で分割 されています。最初のセクションは複数のヘッダからなり、 後続するデータがどのようなものかをクライアントに通知します。 最小のヘッダセクションを生成するための Python のコードは 以下のようなものです:

    print "Content-Type: text/html"     # HTML is following
    print                               # blank line, end of headers

二つ目のセクションは通常、ヘッダやインラインイメージ等の付属した テキストをうまくフォーマットして表示できるようにした HTML です。 以下に単純な HTML を出力する Python コードを示します:

    print "<TITLE>CGI script output</TITLE>"
    print "<H1>This is my first CGI script</H1>"
    print "Hello, world!"