CGIライブラリの主なクラス・メソッド

CGIライブラリは、Webサーバーとアプリケーションプログラムとの古典的なインターフェイスであるCGIに関するライブラリです。

CGIライブラリで定義されている主なクラス・モジュールは、次のとおりです。

  CGI
  CGI::QueryExtension

CGIクラス

CGIクラスは、HTTPヘッダーを生成するheaderメソッドと、いくつかのヘルパーメソッドを定義しています。

include/extendするモジュール:CGI::QueryExtensionモジュール

クラスメソッド

escape(string)
文字列stringをURLエンコードします。
escapeHTML(string)
& " < >の4文字をエスケープします。
rfc1123_date(time)
HTTPヘッダなどで使われる形式に時刻を整形します。
unescape(string)
URLエンコードされた文字列stringを元に戻します。
unescapeHTML(string)
エスケープされた& " < >および&#xxを元に戻します。

インスタンスメソッド

header(options = "text/html")
HTTPヘッダ文字列を生成し、それを返します。

CGI::QueryExtensionモジュール

 CGI::QueryExtensionモジュールは、利用者のWebブラウザからのフォームデータの受け入れと、環境変数へのアクセスのためのクラスです。

[control_name]
コントロール値を取り出す。戻り値はCGI::QueryExtension::Value(Stringの派生クラス)オブジェクト。
cookies
クッキーが格納されたハッシュを返す。
cookies = hash
クッキーが格納されたハッシュを設定する。
has_key?(control_name)
引数control_nameで指定されるコントロール値があれば真を返す。
keys
コントロール名の配列を返す。
params
同名のコントロールのコントロール値も含めて格納するハッシュを返す。
params=
ハッシュを設定する。

QueryExtensionモジュールは、上記のほか、環境変数にアクセスするためのメソッドも定義しています。環境変数はENV[]でも得ることができますが、QueryExtensionのメソッドを使うと、キーの打ち間違いを発見しやすくなります(エラーが発生する)。

メソッド名は、原則として環境変数名を小文字にしたものですが、いくつかバリエーションがあります。

  1. 次の環境変数は、名前を小文字にしたものがメソッド名になります。戻り値の型は文字列です。値が設定されていない場合はnilとなります。
      AUTH_TYPE CONTENT_TYPE GATEWAY_INTERFACE PATH_INFO
      PATH_TRANSLATED QUERY_STRING REMOTE_ADDR REMOTE_HOST
      REMOTE_IDENT REMOTE_USER REQUEST_METHOD SCRIPT_NAME
      SERVER_NAME SERVER_PROTOCOL SERVER_SOFTWARE
    
  2. 次の環境変数は、先頭のHTTP_を除き、名前を小文字にしたメソッド名になります。戻り値の型は文字列です。
      HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_ENCODING
      HTTP_ACCEPT_LANGUAGE HTTP_CACHE_CONTROL HTTP_FROM HTTP_HOST
      HTTP_NEGOTIATE HTTP_PRAGMA HTTP_REFERER HTTP_USER_AGENT
    
  3. 次の環境変数に対応するメソッドは、名前を小文字にしたもので、戻り値の型はIntegerです。
      CONTENT_LENGTH SERVER_PORT
    
  4. 次の環境変数は、左側の環境変数名に対して、右側のメソッド名が対応します。
      HTTP_COOKIE     raw_cookie
      HTTP_COOKIE2    raw_cookie2