class WEBrick::CGI

要約

一般の CGI 環境で WEBrick のサーブレットと同じように CGI スクリプトを書くためのクラスです。

目次

特異メソッド
インスタンスメソッド

特異メソッド

new(config = {}, *options) -> WEBrick::CGI[permalink][rdoc]

WEBrick::CGI オブジェクトを生成してかえします。

[PARAM] config:
設定を保存したハッシュを指定します。

config で有効なキーとその値は以下のとおりです。キーはすべて Symbol オブジェクトです。

:ServerName

サーバ名を文字列で指定します。デフォルトでは ENV["SERVER_SOFTWARE"] が使われます。 ENV["SERVER_SOFTWARE"] が nil の場合は "null" が使われます。

:HTTPVersion

HTTP バージョンを WEBrick::HTTPVersion オブジェクトで指定します。デフォルトでは ENV["SERVER_PROTOCOL"] の HTTP バージョンが使われます。 ENV["SERVER_PROTOCOL"] が nil の場合 HTTP バージョンは 1.0 です。

:NPH

NPH スクリプトとして実行される場合に true を指定します。そうでない場合に false を指定します。デフォルトは false です。

:Logger

ログを取るための WEBrick::BasicLog オブジェクトを指定します。デフォルトでは標準エラー出力にログが出力されます。

:RequestTimeout

リクエストを読み込む時のタイムアウトを秒で指定します。デフォルトは 30 秒です。

:Escape8bitURI

この値が true の場合、クライアントからのリクエスト URI に含まれる 8bit 目が立った文字をエスケープします。デフォルトは false です。

[PARAM] options:
ユーザがこのクラスを継承して作成したクラスで @options というインスタンス変数として使用できます。

インスタンスメソッド

self[key] -> object[permalink][rdoc]

指定された key に対応した自身の設定値を返します。

[PARAM] key:
設定名を Symbol オブジェクトで指定します。
config -> Hash[permalink][rdoc]

自身の設定を保持したハッシュを返します。

[SEE_ALSO] WEBrick::CGI.new

logger -> WEBrick::BasicLog[permalink][rdoc]

設定されているログオブジェクトを返します。

デフォルトでは WEBrick::BasicLog.new($stderr) です。

service(req, res) -> ()[permalink][rdoc]

指定された WEBrick::HTTPRequest オブジェクト req の WEBrick::HTTPRequest#request_method に応じて、自身の do_GET, do_HEAD, do_POST, do_OPTIONS... いずれかのメソッドを req と res を引数として呼びます。

特に理由が無い限り WEBrick::CGI のサブクラスがこのメソッドを定義する必要はありません。

[PARAM] req:
クライアントからのリクエストを表す WEBrick::HTTPRequest オブジェクトです。
[PARAM] res:
クライアントへのレスポンスを表す WEBrick::HTTPResponse オブジェクトです。
[EXCEPTION] WEBrick::HTTPStatus::MethodNotAllowed:
指定された WEBrick::HTTPRequest オブジェクト req が自身に定義されていないHTTP のメソッドであった場合発生します。
start(env = ENV, stdin = $stdin, stdout = $stdout) -> ()[permalink][rdoc]

自身に定義されたサービスを実行します。

start メソッドは service メソッドを呼び出し、service メソッドはリクエストに応じて do_XXX メソッドを呼び出します。このようにして CGI スクリプトは実行されます。

[PARAM] env:
CGI スクリプトが受け取った Meta-Variables (環境変数)を保持したハッシュか、それと同じ [] メソッドを持ったオブジェクトを指定します。
[PARAM] stdin:
リクエストデータの入力元を IO オブジェクトで指定します。
[PARAM] stdout:
レスポンスデータの出力先を IO オブジェクトで指定します。