Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > webrick/cgiライブラリ > WEBrick::CGIクラス
class WEBrick::CGI
クラスの継承リスト: WEBrick::CGI < Object < Kernel < BasicObject
Abstract
一般の CGI 環境で WEBrick のサーブレットと同じように CGI スクリプトを書くための クラスです。
特異メソッド
new(config={}, *options) -> WEBrick::CGI
-
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 です。
インスタンスメソッド
self[key] -> object
-
指定された key に対応した自身の設定値を返します。
- [PARAM] key:
- 設定名を Symbol オブジェクトで指定します。
config -> Hash
-
自身の設定を保持したハッシュを返します。
[SEE_ALSO] WEBrick::CGI.new
do_GET(req, res) -> ()
do_HEAD(req, res) -> ()
do_POST(req, res) -> ()
do_PUT(req, res) -> ()
do_DELETE(req, res) -> ()
do_OPTIONS(req, res) -> ()
-
自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。WEBrick::CGI のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。
クライアントが使う可能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。 クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。 実装されていない HTTP メソッドであった場合、自身の service メソッドが 例外を発生させます。
このメソッドが呼ばれた時点では、クライアントからのリクエストに含まれる Entity Body の読み込みは まだ行われていません。WEBrick::HTTPRequest#query, WEBrick::HTTPRequest#body などの メソッドが読ばれた時点で読み込みが行われます。クライアントから巨大なデータが送られてくることを考慮して ユーザはプログラミングを行うべきです。
- [PARAM] req:
- クライアントからのリクエストを表す WEBrick::HTTPRequest オブジェクトです。
- [PARAM] res:
- クライアントへのレスポンスを表す WEBrick::HTTPResponse オブジェクトです。
logger -> WEBrick::BasicLog
-
設定されているログオブジェクトを返します。
デフォルトでは WEBrick::BasicLog.new($stderr) です。
service(req, res) -> ()
-
指定された 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:
指定された [[c:WEBrick::HTTPRequest]] オブジェクト req が自身に定義されていない HTTP のメソッドであった場合発生します。
start(env = ENV, stdin = $stdin, stdout = $stdout) -> ()
-
自身に定義されたサービスを実行します。
start メソッドは service メソッドを呼び出し、service メソッドはリクエストに応じて do_XXX メソッドを呼び出します。このようにして CGI スクリプトは実行されます。