要約
一般の CGI 環境で WEBrick のサーブレットと同じように CGI スクリプトを書くためのクラスです。
目次
特異メソッド
new(config = {}, *options) -> WEBrick::CGI
[permalink][rdoc][edit]-
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][edit]-
指定された key に対応した自身の設定値を返します。
- [PARAM] key:
- 設定名を Symbol オブジェクトで指定します。
config -> Hash
[permalink][rdoc][edit]-
自身の設定を保持したハッシュを返します。
[SEE_ALSO] WEBrick::CGI.new
logger -> WEBrick::BasicLog
[permalink][rdoc][edit]-
設定されているログオブジェクトを返します。
デフォルトでは WEBrick::BasicLog.new($stderr) です。
service(req, res) -> ()
[permalink][rdoc][edit]-
指定された 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][edit]-
自身に定義されたサービスを実行します。
start メソッドは service メソッドを呼び出し、service メソッドはリクエストに応じて do_XXX メソッドを呼び出します。このようにして CGI スクリプトは実行されます。
- [PARAM] env:
- CGI スクリプトが受け取った Meta-Variables (環境変数)を保持したハッシュか、それと同じ [] メソッドを持ったオブジェクトを指定します。
- [PARAM] stdin:
- リクエストデータの入力元を IO オブジェクトで指定します。
- [PARAM] stdout:
- レスポンスデータの出力先を IO オブジェクトで指定します。