Request.ServerVariables 개체에서 제공하는 환경변수 내용
변수 |
설명 |
APPL_PHYSICAL_PATH |
물리적 경로 |
AUTH_TYPE |
사용자가 보안이 걸린 스크립트를 접근하려 할 때 서버가 사용자를 인증하기 위해 사용하는 인즌 메쏘드 |
CONTENT_LENGTH |
사용자에 의해 주어진 콘텐츠 길이 |
CONTENT_TYPE |
콘텐츠의 데이터 타입. POST, PUT과 같은 HTTP 쿼리와 함께 사용됨 |
GATEWAY_INTERFACE |
서버에 의해 사용되는 CGI 스펙 리비젼(revision). 다음과 같은 형식을 띈다:CGI/revision |
HTTP_<HeaderName> |
HeaderName 헤더에 저장된 값. 이 테이블에 리스트된 헤더 외에 다른 헤더들 역시 ServerVariables 컬렉션이 그 값을 가지고 올 수 있도록 "HTTP_" 라는 접두어를 붙여 사용해야 한다. 주의: 서버는 HeaderName에 들어 있는 어떠한 언더스코어(_) 문자도 실제 헤더의 대쉬(-)로 해석한다. 예를 들어, HTTP_MY_HEADER라고 지정하면 서버는 MY-HEADER로 보내진 헤더를 찾게 된다 |
LOGON_USER |
사용자가 로그온한 윈도 NT 계정 |
PATH_INFO |
클라이언트에 의해 주어진 부가 경로 정보. 가상 경로와 PATH_INFO를 이용하여 스크립트에 접근할 수 있다. 이 정보가 URL로부터 온다면 그것을 CGI 스크립트로 넘기기 전에 서버에 의해 디코딩된다. |
PATH_TRANSLATED |
가상경로를 물리적 경로로 매핑시킨 PATH_INFO의 해석된 버전 |
QUERY_STRING |
HTTP 요청에서 "?" 다음에 나오는 문자열에 저장된 쿼리 정보 |
REMOTE_ADDR |
HTTP 요청을 한 리모트 호스트의 IP 주소. 웹페이지에 접근한 사용자의 IP를 알 수 있다 |
REMOTE_HOST |
HTTP 요청을 한 리모트 호스트의 이름. 서버가 이 정보를 갖고 있지 않다면 REMOTE_ADDR로 설정 |
REQUEST_METHOD |
HTTP요청을 할 때 사용된 메쏘드. HTTP의 경우 GET, HEAD, POST 등이 있다 |
SCRIPT_MAP |
URL의 베이스부분 |
SCRIPT_NAME |
수행되는 스크립트에 대한 가상 경로. 현재 요청한 URL을 알기 위해 사용된다 |
SERVER_NAME |
서버의 호스트 네임. 또는 IP 주소. 이 SERVER_NAME과 SCRIPT_NAME을 현재 자기 자신의 주소를 알아앨 수 있다 |
SERVER_PORT |
요청을 보낸 포트 번호 |
SERVER_PORT_SECURE |
요청이 안전한 포트에서 처리되면 1, 그렇지 않으면 0. |
SERVER_PROTOCOL |
요청한 프로토콜의 이름과 리비젼(revision). 형식: protocol/revision |
SERVER_SOFTWARE |
요청에 응답하는 서버 소프트웨어의 이름과 버전. 형식: name/version |
URL |
URL의 베이스 부분 |
위의 내용을 사이트에서 직접 출력해보면 좀더 이해하기 쉬울것이다. 아래의 소스는
For Each 문을 사용해서 모든 변수값을 찍어내는 내용이다.
그 아래의 내용은 사이트 작업을 하면서 많이 쓰일만한 내용들이다.
<TABLE>
<TR>
<TD><B>Server Varriable</B></TD>
<TD><B>Value</B></TD>
</TR>
<% For Each name In Request.ServerVariables %>
<TR>
<TD><%= name %></TD>
<TD><%= Request.ServerVariables(name) %></TD>
</TR>
<% Next %>
</TABLE>
환경변수를 이용하여 방문자의 IP, 현재 페이지의 URL 등을 알아내는 간단한 예는 다음과 같다
방문자의 IP : <%=Request.ServerVariables("REMOTE_ADDR")%>
사용 언어 : <%=Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")%>
브라우저 및 OS 정보 : <%=Request.ServerVariables("HTTP_USER_AGENT")%>
이전 페이지 주소 : <%=Request.ServerVariables("HTTP_REFERER")%>