CGIアダプタ:URLの取得
2007/03/30 (Fri) 22:07:46 JST
script_name = getenv(CGI_SCRIPT_NAME); path_info = getenv(CGI_PATH_INFO); if (script_name == NULL) die(INV_SCRIPT, HTTP_NOT_FOUND); else if (path_info == NULL) { path_info = "/"; }
環境変数SCRIPT_NAMEとPATH_INFOの設定です。 SCRIPT_NAMEがヘッダに含まれていなければエラーとし、HTTPトランザクションを終了します(die)。 スクリプトファイル名以降に"/"がなければ、PATH_INFOがヘッダに含まれません。 そのときは、PATH_INFOを"/"に設定しておきます。
例えば http://www.xxxxx.com/cgi-bin/WebObjects/Application.woa/sessionID/contextID
にアクセスすると、SCRIPT_NAMEは /cgi-bin/WebObjects
、PATH_INFOは /Application.woa/sessionID/contextID
に設定されます。
INV_SCRIPTはerrors.hで定義されているエラーメッセージ "Cannot determine script name from CGI" です。 HTTP_NOT_FOUNDはhttperrors.hで定義されている、ご存知404のステータスコードです。
die(), die_resp()
static void die(const char *msg, int status) { // エラーメッセージとHTTPステータスからHTTPResponseを生成 HTTPResponse *resp = resp_errorResponse(msg, status); die_resp(resp); } static void die_resp(HTTPResponse *resp) { sendResponse(resp); resp_free(resp); // メモリ解放 exit(0); }
HTTPエラーを出力します。
Inverse Pages: WOCGIAdaptor