CGIの環境変数
HTTPdはCGIを動かすときにたくさんの環境変数を設定します。
興味深い情報を含んだものから、あまり役立たないものまでいろいろ
あります。ただし、これらの環境変数はいつも必ず格納されているとは
限りません。またHTTPdの種類やbrowserの種類により設定される
環境変数は異なります。環境変数に強く依存して動くCGIはよろしく
ありません。
HTTPdがCGIを実行した段階での環境変数の一覧は次のCGIを作って
それをアクセスすることで表示できます。
extern char** environ;
for( char** env=environ ; *env != NULL ; env++ ){
printf("%s<BR>\n", *env );
}
またHTTPdの標準の環境変数は SSI用のページで
<PRE>
<!--#exec cmd="set" -->
</PRE>
とすることで表示できます。
以下に標準的な環境変数のみを紹介します。
- SERVER_NAME
-
HTTPdが走っているサーバーのフルネームです。
格納例 www.hongo.ecc.u-tokyo.ac.jp
- SERVER_SOFTWARE
-
HTTPdのソフト名です。
格納例 NCSA/1.3、Apache/0.8.14
- SERVER_PORT
-
HTTPdが待機しているport番号です。標準は80番です。
格納例 80
- SERVER_PROTOCOL
-
HTTPdから送られてくるデータの形式です。
格納例 HTTP/1.0
- REMOTE_ADDR
-
閲覧者が中継サーバーを介さないでWeb Serverにアクセスしている場合
には browserが動いているホストのIPアドレスの文字列です。
中継サーバーを介していると、その中継サーバーのそれです。
格納例 157.82.51.229
- REMOTE_HOST
-
REMOTE_ADDRを名前に変換したものです。
格納例 xsi12.komaba.ecc.u-tokyo.ac.jp
- REMOTE_PORT
-
Browserがhttpdとの接続に使ったソケットのport番号です。
格納例 2252
- REMOTE_IDENT
-
閲覧者が居るホストでident daemonが待機している場合に得られる
閲覧者のIDです。この環境変数は設定されないことがほとんです。
格納例 naoki
- REMOTE_USER
-
HTTPdに対してpasswordで個人認証を行うように.htaccessを
設定している場合に、その個人のユーザー名が格納されています。
格納例 naoki
- REQUEST_METHOD
-
FORMなどの情報をserverに送る方式です。
格納例 GET POST
- SCRIPT_NAME
-
HTTPdが実行しているCGIのURLのうちサイトのURLを除いた部分です。
格納例 /~naoki/cgitest.cgi
- SCRIPT_FILENAME
-
HTTPdが実行しているCGIのUNIX絶対PATHです。
格納例 /home/naoki/public_html/cgitest.cgi
- QUERY_STRIING
-
CGIを呼び出す際に、コマンドライン引き数に与えた文字列です。
例えば;cgifile.cgi/pathinfo?argv1+argv2 とするとQUERY_STRIINGは
argv1+argv2 となります。
- PATH_INFO
-
CGIを呼び出す際に slashで続けた文字列が格納されています。
イメージマップのマップファイルの指定などに使われます。
- PATH_TRANSLATED
-
DOCUMENT_ROOTにPATH_INFOを繋げた値です。
- CONTENT_TYPE
-
FORMで送るデータのMIMEタイプです。
格納例 multipart/form-data
- CONTENT_LENGTH
-
FORMで送るデータのバイト数です。
- HTTP_COOKIE
-
このCGIに託されたCookieの全リストが格納されています。
格納例 name1=value1; name2=value2; s=localhost1234567890
- HTTP_USER_AGENT
-
閲覧者のWeb Browserの種別を表します。
格納例
Mozilla/3.01 (X11; I; FreeBSD 2.1.0-RELEASE i386)
- HTTP_ACCEPT
-
HTTPdが受け付けることができるデータのMIMEタイプの一覧です。
以下の形式があります。他にもあります
text/plain text/html
text/x-html text/richtext
text/x-setext text/tab-separated-values
message/rfc822
image/gif image/jpeg image/tiff
image/xwd image/rgb
image/x-rgb image/x-xwd
image/x-xbitmap image/x-xpixmap
image/x-portable-anymap image/x-portable-graymap
image/x-portable-bitmap image/x-portable-pixmap
image/x-xwindowdump
audio/basic audio/x-aiff audio/x-wav
video/mpeg video/quicktime video/x-msvideo
application/html application/postscript
application/x-dvi application/x-html
application/x-latex application/x-tex
application/x-texinfo application/x-troff
application/x-troff-man application/x-troff-me
application/x-troff-ms
Copyright(C) by Naoki Watanabe. Oct 21st, 1995.
渡辺尚貴 naoki@cms.phys.s.u-tokyo.ac.jp