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