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는 APPI_MD_PATH를 실제(디렉터리) 경로로 변환하여 이 값을 반환합니다. |
| AUTH_PASSWORD | 클라이언트의 인증 대화 상자에 입력한 값입니다. 이 변수는 기본 인증을 사용할 때만 이용할 수 있습니다. |
| AUTH_TYPE | 사용자가 보호된 스크립트에 액세스할 때 사용자를 인증하기 위해 서버가 사용하는 인증 메서드입니다. |
| AUTH_USER | 인증된 사용자 이름입니다. |
| CERT_COOKIE | 클라이언트 인증서의 고유 ID로, 문자열로 반환됩니다. 전체 클라이언트 인증서의 서명으로 사용될 수도 있습니다. |
| CERT_FLAGS | 클라이언트 인증서가 있는 경우 bit0은 1로 설정됩니다.
클라이언트 인증서의 cCertification 인증 기관이 유효하지 않을 경우(서버의 CA 목록에 없는 경우) bit1은 1로 설정됩니다. |
| CERT_ISSUER | 클라이언트 인증서의 발급자 필드(O=MS, OU=IAS, CN=사용자 이름, C=USA)입니다. |
| CERT_KEYSIZE | SSL(Secure Sockets Layer) 연결 키 크기의 비트 수입니다. 예를 들어, 128이 있습니다. |
| CERT_SECRETKEYSIZE | 서버 인증서 개인 키의 비트 수입니다. 예를 들어, 1024가 있습니다. |
| CERT_SERIALNUMBER | 클라이언트 인증서의 일련 번호 필드입니다. |
| CERT_SERVER_ISSUER | 서버 인증서의 발급자 필드입니다. |
| CERT_SERVER_SUBJECT | 서버 인증서의 제목 필드입니다. |
| CERT_SUBJECT | 클라이언트 인증서의 제목 필드입니다. |
| CONTENT_LENGTH | 클라이언트가 제공한 컨텐트의 길이입니다. |
| CONTENT_TYPE | 컨텐트의 데이터 종류입니다. HTTP 쿼리 GET, POST 및 PUT 등과 같이 컨텐트를 첨부한 쿼리에 사용됩니다. |
| GATEWAY_INTERFACE | 서버가 사용하는 CGI 사양의 수정 버전입니다. 형식은 CGI/revision입니다. |
| HTTP_<HeaderName> | HeaderName 헤더에 저장된 값입니다. 이 표에 열거되지 않은 모든 다른 헤더는 HTTP_ 접두사로 시작해야만 ServerVariables 컬렉션에서 그 값을 검색할 수 있습니다.
참고 서버는 HeaderName에 있는 모든 밑줄(_)을 실제 헤더에서는 대시로 해석합니다. 예를 들어, HTTP_MY_HEADER를 지정하면 서버는 MY-HEADER로 보내진 헤더를 찾습니다. |
| HTTP_ACCEPT | Accept 헤더의 값을 반환합니다. |
| HTTP_ACCEPT_LANGUAGE | 컨텐트를 표시하는 데 사용할 언어를 설명하는 문자열을 반환합니다. |
| HTTP_USER_AGENT | 요청을 보낸 브라우저를 설명하는 문자열을 반환합니다. |
| HTTP_COOKIE | 요청에 포함된 쿠키 문자열을 반환합니다. |
| HTTP_REFERER | 요청에 대해 현재 페이지를 참조했던 페이지 URL이 있는 문자열을 반환하지만 리디렉션 요청은 하지 않습니다. 리디렉션 요청은 캡처되지 않습니다. |
| HTTPS | 보안 채널(SSL)을 통해 요청이 오면 ON을 반환하고, 요청이 보안 되지 않은 채널에 대한 것이면 OFF를 반환합니다. |
| HTTPS_KEYSIZE | SSL(Secure Sockets Layer) 연결 키 크기의 비트 수입니다. 예를 들어, 128이 있습니다. |
| HTTPS_SECRETKEYSIZE | 서버 인증서 개인 키의 비트 수입니다. 예를 들어, 1024가 있습니다. |
| HTTPS_SERVER_ISSUER | 서버 인증서의 발급자 필드입니다. |
| HTTPS_SERVER_SUBJECT | 서버 인증서의 제목 필드입니다. |
| INSTANCE_ID | 텍스트 형식으로 된 IIS 인스턴스의 ID로, 인스턴스 ID가 1이면 문자열로 나타납니다. 이 변수를 사용하여 요청이 속하는 (메타베이스의) 웹 서버 인스턴스의 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.ServerVariable의 호출에서 헤더 이름 앞에 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를 사용하여 기존의 서버 변수 이름을 반복하는 예제입니다. 익명 액세스를 허용한 경우 일부는 비어있게 됩니다. 예를 들어, 다음 스크립트는 모든 서버 변수를 표로 인쇄합니다.
<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>
적용
관련 항목
ClientCertificate, Cookies, Form, QueryString