CGI 環境変数

ブラウザがサーバへリクエストを出すとき、環境変数が Web サーバおよびブラウザにより作成されます。ColdFusion では、これらの変数は CGI 環境変数として参照され、"CGI" 接頭辞が使用されます。これは、ColdFusion Server と通信するために使うサーバが CGI ではなく API の場合でも同じです。

環境変数には、IP アドレス、ブラウザ タイプ、および認証されたユーザ名など、ブラウザとサーバ間のトランザクションについてのデータが含まれます。指定ページリクエストに対して、ページ内のいずれの場所においても CGI 環境変数を参照することができます。CGI 変数は読み取り専用です。


メモ

アプリケーションで使用可能な環境変数は、ブラウザおよびサーバ ソフトウェアに より異なります。


CGI 変数のテスト

すべての CGI 変数がブラウザによりサポートされているわけではありません。そのため、CGI 変数の存在の有無をテストすると、変数がクライアント ブラウザによりサポートされていない場合でも、ColdFusion では常に TRUE を返します。これを解決するために、CGI 変数の中身が空の文字列かどうかをテストして、CGI 変数が使用可能であるかどうかを判断します。

<cfif CGI.varname IS NOT "">
  CGI variable exists
<cfelse>
  CGI variable does not exist
</cfif>

CGI サーバ変数

次の表は、サーバにより作成される一般の CGI 環境変数を示します。これらの変数の中にはサーバによっては利用できないものもあります。
CGI サーバ変数
説明
SERVER_SOFTWARE
リクエストに応答する (ゲートウェイを実行する) 情報サーバ ソフトウェアの名前およびバージョン。形式は name/version です。
SERVER_NAME
サーバのホスト名、DNS エイリアス、または自己参照 URL で示される IP アドレス。
GATEWAY_INTERFACE
このサーバが対応する CGI 仕様のリビジョン。形式は CGI/revision です。
SERVER_PROTOCOL
このリクエストに付随してきた情報プロトコルの名前と改訂。形式は protocol/revision です。
SERVER_PORT
リクエストの送信先のポート番号
REQUEST_METHOD
リクエストの生成に使用されたメソッド。HTTP では、このメソッドは "Get"、"Head"、"Post" などです。
PATH_INFO
クライアントにより指定された、追加パス情報。スクリプトは、仮想パス名の後ろに追加情報を加えることによってアクセスできます。追加情報は、PATH_INFO として送信されます。
PATH_TRANSLATED
仮想パスから物理パスへのマッピングを変換したバージョン PATH_INFO
SCRIPT_NAME
実行されるスクリプトへの仮想パスで、自己参照 URL で使用されます。
QUERY_STRING
このスクリプトを参照した URL 内の ? の後に続くクエリ情報
REMOTE_HOST
リクエストを作成するホスト名。サーバにこの情報がない場合には、REMOTE_ADDR が設定され、REMOTE_HOST は未設定のまま残されます。
REMOTE_ADDR
リクエストを作成しているリモート ホストの IP アドレス
AUTH_TYPE
サーバがユーザ認証をサポートし、スクリプトが保護されている場合には、これがユーザを検証するために使用するプロトコル固有の認証メソッドになります。
REMOTE_USER
AUTH_USER
サーバがユーザ認証をサポートし、スクリプトが保護されている場合には、これが認証したユーザ名になります (AUTH_USER としても使用可能です)。
REMOTE_IDENT
HTTP サーバが RFC 931 による識別をサポートしている場合には、この変数は、サーバから取得したリモート ユーザ名に設定されます。この変数を使用するのは、ログ記録の場合に限定する必要があります。
CONTENT_TYPE
HTTP POST や PUTのように、情報を添付したクエリの場合には、これがデータのコンテンツ タイプになります。
CONTENT_LENGTH
クライアントから指定された内容の長さ

CGI クライアント変数

次の表は、ブラウザで作成され、リクエストヘッダで渡される一般 CGI 環境変数を示します。
CGI クライアント変数
説明
HTTP_REFERER
リンク先の参照ドキュメントまたは送信されたフォーム データ
HTTP_USER_AGENT
クライアントがリクエストを送信するために現在使用しているブラウザ。形式は software/version library/version です。
HTTP_IF_MODIFIED_SINCE
最後にページが変更された日付/時間。通常、
LAST_MODIFIED HTTP ヘッダを送信したサーバに応答して、ブラウザにより、この変数を設定するかどうかが決定されます。これは、ブラウザ側のキャッシュ機能を利用するために使用できます。

CGI クライアント証明変数

ColdFusion では、次のクライアント証明データを使用可能にします。これらの変数は、お使いの Web サーバがクライアントの証明書を許可するように設定されている場合に、SSL 環境で Microsoft IIS 4.0 または Netscape Enterprise を実行しているときに使用できます。
CGI クライアント証明変数
説明
CERT_SUBJECT
Web サーバにより提供されたクライアントに特定の情報。このデータには、通常クライアント名、電子メール アドレスが含まれています。たとえば、次のとおりです。
O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = "www.verisign.com/repository/RPA Incorp. by Ref.,LIAB.LTD(c)98", OU = Persona Not Validated, OU = Digital ID Class 1 - Microsoft, CN = Matthew Lund, E = mlund@macromedia.com
CERT_ISSUER
クライアントの証明書を作成した証明機関についての情報。たとえば、次のとおりです。
O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = "www.verisign.com/repository/RPA Incorp. By Ref.,LIAB.LTD(c)98", CN = VeriSign Class 1 CA Individual Subscriber-Persona Not Validated
CLIENT_CERT_ENCODED
全体のクライアント証明バイナリです。ベース 64 でエンコードされます。このデータは、通常クライアント証明を使用する他のソフトウェアと統合している開発者にとって有益です。