システム体系図
 (各サブシステム説明)
Web検索
システムの機器構成
システムの販売価格
Q&A
貴社システムの評価
ハイパーリンク関係
汎用ソフト…公開
知ッ得情報
他業種への展開
オートデモについて
思考力UPへの挑戦
Web HTTPサーバー 一覧
   6.CGIプログラム
@ HTMLのフォームがサーバーからWebクライアントにおくられます。
フォームにはネットワーク上のCGIプログラムを指定するURLが記述されています。
A ブラウザはURLをサーバーに送信します。
URLにはCGIプログラムと【フォームで入力した】パラメーターが含まれています。
B 要求されたURLをサーバーは起動します。
パラメーターはフォームで指定されたメソッド【POSTあるいはGET】に応じて標準入力か環境変数としてプログラムに渡されます。
C サーバーに起動されたCGIプログラム必要に応じて、他のプログラムを実行したり、ファイル(データ・ベース)を読み書きします。
D CGIプログラムはクライアントに返す情報を構築し、標準出力としてサーバーに返します。
E サーバーはCGIプログラムから受け取った標準出力をブラウザに返します。
通常はHTML形式で渡されます。
F ブラウザはサーバーから受け取った情報をフォーマットし、表示します。
1. フォームの作成
<HTML>
<HEAD><TITLE>サンプル</TITLE></HEAD>
<BODY>
<CENTER>
<H1>参考資料</H1>
<H2>サンプル</H2>
</CENTER>
<HR>
@ <FORM METHOD=”GET” ACTION=”/cgi−bin/UN101”>
A <INPUT TYPE=TEXT NAME=”KEY” SIZE=”6” MAXLENGTH”5” VALUE=””>
B <INPUT TYPE=SUBMIT” VALUE=”検索”>
</FORM>
</BODY>
</HTML>
@ <FORM>タグでは『METHOD』,『ACTION』が指定されます。
これらはそれぞれ入力値を「どのように」CGIプログラムに渡すか、「どの」CGIプログラムを起動するかを指定します。、
A <INPUT TYPE=”....”>はテキスト入力のフォーム部品を表示します。
タイプは文字、フィールド名が「KEY」,部品の大きさ「6」、入力最大文字数「5」、初期値は空白を指定しています。
B 実行ボタンを定義しています。
<FORM>の解析
HTML文書内のCGIを示すURL
<FORM METHOD=”GET” ACTION=”/cgi−binUN101”>
HTTPのEXECディレクティブ(WRKHTTPCFG)
Exec   /cgi−bin/* /QSYS.LIBCOSWEB.LIB/*
AS/400で実行されるプログラム
QSYS.LIBCOSWEB.LIBUN101
2. 環境変数
通常、CGIプログラムはメソッドにかかわらず環境変数を参照して処理を行います。
HTTPサーバーはCGIプログラムを呼び出す都度、環境変数を構築し直します。
AS/400のHTTPサーバーが提供する環境変数は以下の通りです。
環境変数 内容
QUERY_STRING フォームから入力された値 NAMAE=ABCD&JUSHO=XXX
SERVER_NEME サーバーのホスト名か、IPアドレスかDNS別名 as400.softrm.jp
SERVER_PORT 要求が送られたポート名 80
REQUEST_METHOD 要求メソッド GET
SCRIPT_NAME 実行されるプログラムのパス名 /cgi-bin/UN101
REMOTE_HOST 要求を発行したホスト名 costar.softrm.jp
REMORT_ADDR 要求を発行したホストのIPアドレス  
CONTENT_TYPE POSTのように追加情報をもつ場合はデータの内容の形式を表す  
CONTENT_LENGTH データの長さ(POSTの場合)  
IBM_CCSID_VALUE サーバー・ジョブのCCSID  
メソッド=GETの場合、環境変数「QUERY_STRING」にフォームの入力値が入るので、CGIプログラムはこれを読み込んで処理を行います。
「QUERY_STRING」の内容はフォームから入力されたままでなく、特殊な形式にエンコードされています。
 フォームの入力
                123ABCabcアイウ漢字 +&=?
       FLD=123ABCabc%B1%B2%B3%8A%BF%8E%9A+%2B%26%3D%3F
       環境変数QUERY_STRING
@ フィールドが複数ある場合、『&』が区切り文字として使われいます。
A 使用される文字は7ビットASCIIのみで、8ビットコード(カタカナや漢字など)、制御文字、特殊文字は「%」の後に2桁の16進数文字を付けた形式です。
B スペース(空白)は「+」に変換します。
メソッド=POSTの場合,フォームの入力値は標準入力として渡されるので、環境変数『QUERY_STRING』は空値です。
CGIプログラムは最初に環境変数『CONTENT_LENGTH』を読み取り、その長さだけ標準入力からフォームの入力値を読み取ります。
サポートするAPI
APIのタイプ IRERPG
環境変数の取得 QtmhGetEnv
標準入力の読み取り QtmhRdStin
標準出力への書き出し QtmhWrStout
CGI入力の解析 QtmhCvtDb