#echo 지시어는 웹 서버가 서버 변수의 값을 표시하도록 지시합니다. 지시어는 HTML 설명 구분 기호로 묶어 주어야 합니다.
이 지시어는 기본적으로 STM 페이지에서만 사용할 수 있으며, ASP 페이지에서는 사용할 수 없습니다. ASP 페이지의 경우 Request.ServerVariables 컬렉션을 사용하여 서버 변수를 액세스할 수 있습니다.
<!-- #echo var = VariableName -->
VariableName
값을 삽입할 변수 이름을 지정합니다. 변수 목록은 다음과 같습니다.
| 변수 | 의미 |
| ALL_HTTP | 이 표에서 설명된 다른 변수 중 하나로 분석되지 않은 모든 HTTP 헤더입니다. 이들 변수는 HTTP_header field name 형태로 되어 있습니다. 헤더는 null로 끝나는 문자열로 이루어지며, 각각 캐리지 리턴 줄 바꿈으로 구분되는 헤더들이 포함됩니다. |
| AUTH_TYPE | 사용하고 있는 인증 형식이 포함됩니다. 예를 들어, 기본 인증을 사용하는 경우에는 문자열 값이 "기본"이 되고, 통합 인증에 대해서는 "통합 Windows 인증"이 됩니다. 인증 계획에 따라 다른 문자열이 사용됩니다. 웹 서버에는 새로운 인증 형식을 추가할 수 있기 때문에 가능한 모든 문자열을 제시하는 것은 불가능합니다. 문자열이 비어 있으면 아무런 인증도 사용하지 않는 것입니다. |
| AUTH_PASSWORD | 클라이언트 인증 대화 상자에 입력하는 값입니다. 이 변수는 기본 인증을 사용할 때만 이용할 수 있습니다. |
| AUTH_USER | 클라이언트 인증 대화 상자에 입력하는 값입니다. |
| CONTENT_LENGTH | 스크립트가 클라이언트로부터 받을 바이트 수입니다. |
| CONTENT_TYPE | POST 요청 본문에 제공되는 정보의 컨텐트 형식입니다. |
| DOCUMENT_NAME | 현재 파일 이름입니다. |
| DOCUMENT_URI | 현재 문서에 대한 가상 경로입니다. |
| DATE_GMT | GMT(그리니치 표준시)로 표시한 현재 날짜입니다. |
| DATE_LOCAL | 현지 시간으로 표시한 현재 날짜입니다. |
| GATEWAY_INTERFACE | 웹 서버에서 사용된 CGI 기능 수정입니다. 이 수정은 CGI/revision 형식으로 보내집니다. |
| HTTP_ACCEPT | 특별한 경우의 HTTP 헤더입니다. accept 필드의 값은 쉼표(,)로 연결되어 있습니다. 예를 들어, 다음 줄은 HTTP 헤더의 일부입니다.
|
| LAST_MODIFIED | 현재 문서가 마지막으로 수정된 날짜입니다. |
| PATH_INFO | 클라이언트가 제공하는 추가 경로 정보로서, 스크립트 이름 다음과 쿼리 문자열 앞에 오는 URL 뒷부분으로 구성됩니다. |
| PATH_TRANSLATED | PATH_INFO의 값으로서, 디렉터리 지정으로 확장된 가상 경로가 포함됩니다. |
| QUERY_STRING | 이 스크립트를 참조했던 URL의 물음표(?) 다음에 나오는 정보입니다. |
| QUERY_STRING_UNESCAPED | 이스케이프가 붙지 않은 쿼리 문자열입니다. 즉, URL로 인코드되지 않은 버전입니다. |
| REMOTE_ADDR | 요청을 보낸 클라이언트 또는 클라이언트 에이전트(예: 게이트웨이 또는 방화벽)의 IP 주소입니다. |
| REMOTE_HOST | 요청을 보낸 클라이언트 또는 클라이언트 에이전트(예: 게이트웨이 또는 방화벽)의 호스트 이름입니다. IIS 2.0과 3.0에서는 이 매개 변수에 대한 IP 주소를 반환합니다. |
| REMOTE_USER | 클라이언트가 서버의 인증을 통과한 경우 클라이언트의 사용자 이름을 포함합니다. 응용 프로그램에서 익명 액세스를 사용하는 경우 빈 문자열로 표시됩니다. |
| REQUEST_METHOD | HTTP 요청 메서드입니다. |
| SCRIPT_NAME | 실행 중인 스크립트 프로그램 이름입니다. |
| SERVER_NAME | 자체 참조 URL에서 나타나는 대로의 서버의 호스트 이름 또는 IP 주소입니다. |
| SERVER_PORT | 요청을 받은 TCP/IP 포트입니다. |
| SERVER_PORT_SECURE | 0 또는 1의 문자열입니다. 보안 포트에서 요청이 처리될 경우에는 1이고 그렇지 않을 경우는 0입니다. |
| SERVER_PROTOCOL | 이 요청과 관련된 정보 검색 프로토콜의 이름과 버전입니다. 대개는 HTTP/1.0입니다. 이 프로토콜은 이름/버전 형식으로 반환됩니다. |
| SERVER_SOFTWARE | 요청에 응답하는 웹 서버의 이름과 버전입니다. 서버 정보는 이름/버전 형식으로 반환됩니다. |
| URL | URL의 기본적인 부분을 제공합니다. 매개 변수 값은 포함되지 않습니다. 이 값은 웹 서버가 헤더에서 URL을 분석할 때 결정됩니다. |
중요
지시어가 포함된 파일에는 SSI 인터프리터로 연결되는 파일 확장명을 사용해야 합니다. 그렇지 않으면 웹 서버가 지시어를 처리할 수 없습니다. 기본적으로 .stm, .shtm, .shtml 등의 파일 확장명이 SSI 인터프리터(ssinc.dll)로 매핑됩니다.#echo 지시어를 사용한 STM 페이지는 자체적으로 실행되거나, Response.Redirect가 있는 ASP 페이지로부터 해당 STM 페이지를 호출하여 실행되어야 합니다. Server.Transfer, Server.Execute 또는 #include가 있는 ASP 페이지로부터 STM 페이지를 호출하면 작동하지 않습니다. 왜냐하면, 이것은 STM 페이지로 하여금 ssinc.dll이 아닌 asp.dll에서 실행되도록 하기 때문입니다.
IIS 스냅인이 설치된 경우에는 기본 확장명 매핑을 수정하고 새 매핑을 추가할 수 있습니다. 응용 프로그램 매핑 설정을 참조하십시오. 두 개 이상의 실행 파일에 파일 확장명을 매핑할 수 없으므로 파일에 이 지시어를 사용할 수 없습니다. ASP 파일은 이미 asp.dl로 매핑되어 있으며 그대로 유지되어야 합니다.
이것은 #echo 지시어를 사용하여 FORM 문의 ACTION 값에 URL을 삽입하는 예제입니다.
--- Echo.asp ---
<FORM NAME="RunEcho" METHOD="POST" ACTION="Echo.asp">
<INPUT TYPE="SUBMIT" VALUE="Run the #echo Directive" NAME="RunEcho">
</FORM>
<%
If Len(Request.Form("RunEcho")) Then
Response.Redirect("Echo.stm?Echo.asp")
End If
%>
--- Echo.stm ---
<H3>Inside Echo.stm</H3> AUTH_TYPE is <!-- #echo var="AUTH_TYPE"--><BR> <FORM NAME="Return" METHOD="POST" ACTION="<!-- #echo var="QUERY_STRING"-->"> <INPUT TYPE="SUBMIT" VALUE="Return to Previous Page" NAME="Return"> </FORM>