ASP(Active Server Page)는 Request 개체의 일부인 ServerVariables이란 개체를 갖고 있다. 이 ServerVariables 개체는 개발자들을 위해 많은 환경 변수를 제공하고 있다. IIS의 디렉토리 보안 옵션과 함께 현재 사이트에 누가 접속해 있는지를 알기 위해 ServerVariables를 사용할 수 있다. 또한 ServerVariables 개체를 이용하여 방문자의 IP를 알 수도 있다.
예를 들어, 윈도 NT/2000으로 로그온한 사용자의 계정 이름을 어떻게 알 수 있을까? 다음과 같이 ServerVariables개체를 사용하면 간단히 해결할 수 있다:
Request.ServerVariables("LOGON_USER") |
이렇듯 ServerVariable 개체에서 제공하는 많은 환경변수를 잘 알고 있으면 ASP 프로그래밍을 할 때 여러 가지로 유용한 경우가 많다.
다음은 Request.ServerVariables 개체에서 제공하는 환경변수에 대한 요약이다:
변수 | 설명 |
AUTH_TYPE | 사용자가 보안이 걸린 스크립트를 접근하려 할 때 서버가 사용자를 인증하기 위해 사용하는 인즌 메쏘드. |
CONTENT_LENGTH | 사용자에 의해 주어진 콘텐츠 길이 |
CONTENT_TYPE | 콘텐츠의 데이터 타입. POST, PUT과 같은 HTTP 쿼리와 함께 사용됨. |
GATEWAY_INTERFACE | 서버에 의해 사용되는 CGI 스펙 리비젼(revision). 다음과 같은 형식을 띈다:CGI/revision. |
HTTP_ |
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의 베이스 부분. |
위에서 살펴본 ServerVariables의 환경변수 모두를 알 필요는 없지만 이 중 REMOTE_ADDR, SCRIPT_NAME, SERVER_NAME 등 일부 몇 가지는 자주 사용되므로 잘 알아두기 바란다. 위 환경변수에 대한 감이 없는 사람들을 위해 실제 이 환경변수들의 모든 값을 출력하는 소스 코드를 살펴보자.
|
자신의 웹서버에 위 소스코드를 저장한 ASP파일을 준 후 이 ASP 페이지에 접근하면 현재 사용된 모든 환경변수의 값을 알아낼 수 있을 것이다.
환경변수를 이용하여 방문자의 IP, 현재 참조한 페이지의 URL 등을 알아내는 간단한 예는 다음과 같다:
당신의 IP : <%= Request.ServerVariables("REMOTE_ADDR") %> 현재 참조한 페이지 주소 : http://<%= Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("SCRIPT_NAME")%> 당신이 사용하고 있는 언어 : <%= Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") %> 브라우저 및 OS 정보 : <%= Request.ServerVariables("HTTP_USER_AGENT") %> 이전에 본 페이지 주소 : <%= Request.ServerVariables("HTTP_REFERER") %> |
'asp' 카테고리의 다른 글
천만건 이상게시판로직 (0) | 2007.05.02 |
---|---|
계층형 게시판 로직 (0) | 2007.05.02 |
NIC에서 인터넷 도메인 정보 얻어오기 (0) | 2007.05.02 |
접속자 정보 기록 (0) | 2007.05.02 |
접속자 정보 기록 (0) | 2007.05.02 |