第二章:環境変数
ネットサーフィンをしていると、時々自分の使っているブラウザーやホスト名を表示しているWebページを見かけませんか?あれは、HTTPサーバーに設定される環境変数を取得して利用しています。ブラウザー名と、ホスト名を表示するプログラムを書いてみましょう。
#include <stdio.h>
#include <stdlib.h>
int main(void){
printf("Content-type: text/plain\n\n");
printf("%sから、%sでようこそ!",getenv("REMOTE_HOST"),getenv("HTTP_USER_AGENT"));
return 1;
}
getenvはstdlib.hに定義されている、環境変数を読み込む関数です。本当は、環境変数が読み込めなかったときのことを考慮して処理すべきなのですが、ここでは省きます。以下に、主な環境変数と、その内容を示します。
HTTP_USER_AGENT
| ユーザーのブラウザーとマシンの情報
Mozilla/4.0 [en] (Win95; I)
Mozilla/3.01 [ja] (Win95; I)
Mozilla/3.01Gold [ja] (Win95; I)
Mozilla/2.02 [ja] (Macintosh; I; PPC)
Mozilla/1.1I [ja] (Windows; I; 16bit)
Mozilla/4.0 (compatible; MSIE 4.0b1; Windows 95)
Mozilla/2.0 (compatible; MSIE 3.02; Windows 95) |
REMOTE_HOST |
ユーザーのホスト名(テキスト形式)
ただし、サーバーによっては設定されない場合もあるので注意してください。 |
REMOTE_ADDR |
ユーザーのホスト名(IPアドレス) |
QUERY_STRING |
CGIプログラムに追加情報を持たせる場合には、一般的にURLに'?'を付け、その後に追加情報を記述します。この変数は'?'以降の文字列を格納しています。 |
REQUEST_METHOD |
データがどのような形で送信されたか(POSTかGET) |
CONTENT_LENGTH |
POSTでデータをプログラムに渡す場合のデータのバイト数 |
HTTP_COOKIE |
クッキーが設定されていれば、ユーザーのマシンから該当するクッキーが格納される。 |
□次の章へ