ServerVariables コレクションは、定義済み環境変数の値を取得します。
Request.ServerVariables(server environment variable)
変数 | 説明 |
ALL_HTTP | クライアントから送信されたすべての HTTP ヘッダーです。 |
ALL_RAW | すべてのヘッダーを元の形式のままで取得します。ALL_RAW と ALL_HTTP との違いは、ALL_HTTP ではヘッダー名の前にプリフィックス "HTTP_" が付き、ヘッダー名が常に大文字に変換される点にあります。ALL_RAW では、ヘッダー名と値がクライアントから送信されたままの形で渡されます。 |
APPL_MD_PATH | ISAPI DLL 用のアプリケーションのメタベース パスを取得します。 |
APPL_PHYSICAL_PATH | メタベース パスに対応する物理パスを取得します。IIS は、この値を返すときに、APPL_MD_PATH を物理 (ディレクトリ) パスに変換します。 |
AUTH_PASSWORD | クライアントの認証ダイアログに入力された値です。この変数は、基本認証が使用された場合にのみ利用できます。 |
AUTH_TYPE | 保護されたスクリプトにユーザーがアクセスしようとしたときに、サーバーがそのユーザーを確認するために使用する認証方法です。 |
AUTH_USER | 元の形式のままの認証ユーザー名です。 |
CERT_COOKIE | クライアント証明書の一意の ID が文字列として返されます。クライアント証明書全体の署名として使用できます。 |
CERT_FLAGS | クライアント証明書が存在する場合は、bit0 は 1 に設定されます。
クライアント証明書の証明機関が無効な場合 (該当する証明機関がサーバー上の既知の CA の一覧に存在しない場合) は、bit1 は 1 に設定されます。 |
CERT_ISSUER | クライアント証明書の Issuer フィールドです (O=MS、OU=IAS、CN=ユーザー名、C=USA)。 |
CERT_KEYSIZE | SSL 接続キー サイズのビット数 (128 など) です。 |
CERT_SECRETKEYSIZE | サーバー証明書秘密キーのビット数 (1024 など) です。 |
CERT_SERIALNUMBER | クライアント証明書のシリアル番号フィールドです。 |
CERT_SERVER_ISSUER | サーバー証明書の Issuer フィールドです。 |
CERT_SERVER_SUBJECT | サーバー証明書の Subject フィールドです。 |
CERT_SUBJECT | クライアント証明書の Subject フィールドです。 |
CONTENT_LENGTH | クライアントから提供されるコンテンツの長さです。 |
CONTENT_TYPE | コンテンツのデータ型です。HTTP クエリの GET、POST、PUT など、情報が既に添付されているクエリで使用されます。 |
GATEWAY_INTERFACE | サーバーで使用する CGI 仕様のリビジョン番号です。"CGI/revision" という形式で示されます。 |
HTTP_<HeaderName> | HeaderName に格納されている値です。この表に列挙されているもの以外の任意のヘッダーには、ServerVariables コレクションがその値を取得できるように、必ずその前にプリフィックス "HTTP_" を付ける必要があります。
注 サーバーは、HeaderName 内にあるアンダスコア文字 (_) のうち、実際のヘッダー部分にあるものをダッシュ記号 (-) として解釈します。たとえば、HTTP_MY_HEADER と指定した場合、サーバーは MY-HEADER として送られたヘッダーを探します。 |
HTTP_ACCEPT | Accept ヘッダーの値を返します。 |
HTTP_ACCEPT_LANGUAGE | コンテンツの表示に使用する言語を説明する文字列を返します。 |
HTTP_USER_AGENT | 要求を送信したブラウザを説明する文字列を返します。 |
HTTP_COOKIE | 要求に含まれている cookie 文字列を返します。 |
HTTP_REFERER | 現在のページに対する要求を参照しているページの URL を含んだ文字列を返します。ただし、リダイレクト要求は除きます。リダイレクト要求は、キャプチャされません。 |
HTTPS | 保護されたチャンネル (SSL) を経由して要求を受け取った場合は ON を返します。保護されていないチャンネルに対する要求の場合は OFF を返します。 |
HTTPS_KEYSIZE | SSL 接続キー サイズのビット数 (128 など) です。 |
HTTPS_SECRETKEYSIZE | サーバー証明書秘密キーのビット数 (1024 など) です。 |
HTTPS_SERVER_ISSUER | サーバー証明書の Issuer フィールドです。 |
HTTPS_SERVER_SUBJECT | サーバー証明書の Subject フィールドです。 |
INSTANCE_ID | IIS インスタンスの ID を文字形式で表したものです。インスタンス ID が 1 の場合、1 が文字列として表示されます。この変数を使用すると、要求が属する (メタベース内の) Web サーバー インスタンスの ID を取得できます。 |
INSTANCE_META_PATH | 要求に応答する IIS のインスタンスのメタベース パスです。 |
LOCAL_ADDR | 要求を受け取ったサーバー アドレスを返します。これは、コンピュータに複数の IP アドレスがバインドされている可能性のあるマルチホーム コンピュータで、要求が使用したアドレスを特定する場合に重要な情報です。 |
LOGON_USER | ユーザーがログインした Windows アカウントです。 |
PATH_INFO | クライアントから提供される補足パス情報です。このサーバー変数 PATH_INFO と仮想パスを使用してスクリプトにアクセスできます。この情報が URL からのものである場合は、サーバーによってデコードされてから CGI スクリプトに渡されます。 |
PATH_TRANSLATED | PATH_INFO が変換されたものです。パスをたどって必要な仮想パスと物理パスの間のマッピングを実行します。 |
QUERY_STRING | HTTP 要求内の疑問符 (?) の後の文字列に格納されているクエリ情報です。 |
REMOTE_ADDR | 要求を出したリモート ホストの IP アドレスです。 |
REMOTE_HOST | 要求を出したホストの名前です。サーバーがこの情報を持っていない場合、サーバーは REMOTE_ADDR を設定してこの変数を空のままにします。 |
REMOTE_USER | ユーザーから送信された、マップされていないユーザー名文字列です。これは、サーバーにインストールされている認証フィルタによって変更された名前ではなく、ユーザーから実際に送信された名前です。 |
REQUEST_METHOD | 要求を出すために使用されたメソッドです。HTTP では GET、HEAD、POST などのメソッドがあります。 |
SCRIPT_NAME | 実行されたスクリプトへの仮想パスです。このパスは自己参照 URL の場合に使用されます。 |
SERVER_NAME | 自己参照 URL 内に出現する、サーバーのホスト名、DNS エイリアス、または IP アドレスです。 |
SERVER_PORT | 要求が送られたポート番号です。 |
SERVER_PORT_SECURE | 0 または 1 が格納される文字列です。保護されたポート上で要求が処理された場合は 1、そうでない場合は 0 になります。 |
SERVER_PROTOCOL | 要求情報プロトコルの名前とリビジョン番号です。"protocol/revision" という形式で示されます。 |
SERVER_SOFTWARE | 要求に応答してゲートウェイを実行するサーバー ソフトウェアの名前とバージョンです。"name/version" という形式で示されます。 |
URL | URL の基本部分を示します。 |
クライアントが上の表に示したもの以外のヘッダーを送信した場合は、Request.ServerVariables への呼び出しの中でヘッダー名の前に "HTTP_" を付けることで、ヘッダーの値を取得できます。たとえば、クライアントが次のヘッダーを送信したとします。
SomeNewHeader:SomeNewValue
SomeNewValue
を取得するには、次の構文を使用します。
<% Request.ServerVariables("HTTP_SomeNewHeader") %>
この例は、複数のサーバー変数名を表示します。
<HTML>
<!-- This example displays the content of several ServerVariables. -->
ALL_HTTP server variable =
<%= Request.ServerVariables("ALL_HTTP") %> <BR>
CONTENT_LENGTH server variable =
<%= Request.ServerVariables("CONTENT_LENGTH") %> <BR>
CONTENT_TYPE server variable =
<%= Request.ServerVariables("CONTENT_TYPE") %> <BR>
QUERY_STRING server variable =
<%= Request.ServerVariables("QUERY_STRING") %> <BR>
SERVER_SOFTWARE server variable =
<%= Request.ServerVariables("SERVER_SOFTWARE") %> <BR>
</HTML>
この例は、VBScript の For Each ループを使用して、既存のサーバー変数名に繰り返し処理を行います。匿名アクセスが有効になっている場合、変数が空になることもあります。次のスクリプトは、すべてのサーバー変数名を表形式で出力します。
<TABLE BORDER="1">
<TR><TD><B>Server Variable</B></TD><TD><B>Value</B></TD></TR>
<% For Each strKey In Request.ServerVariables %>
<TR>
<TD><%= strKey %></TD>
<TD><%= Request.ServerVariables(strKey) %></TD>
</TR>
<% Next %>
</TABLE>
この例は、サーバーの名前をハイパーリンクに挿入します。
<A HREF= "http://<%=Request.ServerVariables("SERVER_NAME")%>/scripts/MyPage.asp">
Link to MyPage.asp
</A>
Request オブジェクト
ClientCertificate、Cookies、Form、QueryString