Blame docs/manual/mod/mod_isapi.html.ko.euc-kr

Packit 90a5c9
Packit 90a5c9
Packit 90a5c9
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head>
Packit 90a5c9
<meta content="text/html; charset=EUC-KR" http-equiv="Content-Type" />
Packit 90a5c9
Packit 90a5c9
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Packit 90a5c9
              This file is generated from xml source: DO NOT EDIT
Packit 90a5c9
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Packit 90a5c9
      -->
Packit 90a5c9
<title>mod_isapi - Apache HTTP Server Version 2.4</title>
Packit 90a5c9
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
Packit 90a5c9
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
Packit 90a5c9
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
Packit 90a5c9
<script src="../style/scripts/prettify.min.js" type="text/javascript">
Packit 90a5c9
</script>
Packit 90a5c9
Packit 90a5c9
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
Packit 90a5c9
<body>
Packit 90a5c9
Packit 90a5c9

모듈 | 지시어들 | FAQ | 용어 | 사이트맵

Packit 90a5c9

Apache HTTP Server Version 2.4

Packit 90a5c9
Packit 90a5c9
<-
Packit 90a5c9
Packit 90a5c9
Apache > HTTP Server > Documentation > Version 2.4 > 모듈
Packit 90a5c9
Packit 90a5c9

아파치 모듈 mod_isapi

Packit 90a5c9
Packit 90a5c9

가능한 언어:  en  |

Packit 90a5c9
 fr  |
Packit 90a5c9
 ko 

Packit 90a5c9
Packit 90a5c9
이 문서는 최신판 번역이 아닙니다.
Packit 90a5c9
            최근에 변경된 내용은 영어 문서를 참고하세요.
Packit 90a5c9
설명:Windows용 아파치에서 ISAPI Extension 사용
Packit 90a5c9
상태:Base
Packit 90a5c9
모듈명:isapi_module
Packit 90a5c9
소스파일:mod_isapi.c
Packit 90a5c9
지원:Win32 only
Packit 90a5c9

요약

Packit 90a5c9
Packit 90a5c9
    

이 모듈은 Internet Server extension API를 구현한다. 그래서

Packit 90a5c9
    제약은 있지만 Windows용 아파치에서 Internet Server extension을
Packit 90a5c9
    (즉, ISAPI .dll 모듈) 사용할 수 있다.

Packit 90a5c9
Packit 90a5c9
    

ISAPI extension 모듈(.dll 파일)은 제삼자가 작성한다.

Packit 90a5c9
    Apache Group이 이들 모듈을 만들지 않았으며, 지원도 하지
Packit 90a5c9
    않는다. ISAPI extension 사용에 관한 문제는 ISAPI 제작자에게
Packit 90a5c9
    직접 연락하길 바란다. 제발 이런 문제를 아파치
Packit 90a5c9
    메일링리스트나 버그보고 페이지에 올리지 마라.

Packit 90a5c9
Packit 90a5c9
Support Apache!

주제

Packit 90a5c9
    Packit 90a5c9
  • 사용법
  • Packit 90a5c9
  • 추가 설명
  • Packit 90a5c9
  • 개발자 정보
  • Packit 90a5c9

    지시어들

    Packit 90a5c9
      Packit 90a5c9
    • ISAPIAppendLogToErrors
    • Packit 90a5c9
    • ISAPIAppendLogToQuery
    • Packit 90a5c9
    • ISAPICacheFile
    • Packit 90a5c9
    • ISAPIFakeAsync
    • Packit 90a5c9
    • ISAPILogNotSupported
    • Packit 90a5c9
    • ISAPIReadAheadBuffer
    • Packit 90a5c9
      Packit 90a5c9

      Bugfix checklist

      참고

      Packit 90a5c9
        Packit 90a5c9
      • Comments
      • Packit 90a5c9
        top
        Packit 90a5c9
        Packit 90a5c9

        사용법

        Packit 90a5c9
        Packit 90a5c9
            

        서버설정파일에서 AddHandler 지시어를 사용하여

        Packit 90a5c9
            ISAPI 파일 확장자와 isapi-handler 핸들러를 연결한다.
        Packit 90a5c9
            .dll 파일을 ISAPI extension으로 처리하려면 httpd.conf 파일에
        Packit 90a5c9
            다음과 같이 추가한다.

        Packit 90a5c9
            

        Packit 90a5c9
                AddHandler isapi-handler .dll
        Packit 90a5c9
            

        Packit 90a5c9
        Packit 90a5c9
            

        아파치 서버는 요청한 모듈을 메모리에 계속 둘 수 없다.

        Packit 90a5c9
            그러나 httpd.conf에서 다음과 같은 설정으로 특정 모듈을 미리
        Packit 90a5c9
            읽어들일 수는 있다.

        Packit 90a5c9
            

        Packit 90a5c9
                ISAPICacheFile c:/WebWork/Scripts/ISAPI/mytest.dll
        Packit 90a5c9
            

        Packit 90a5c9
        Packit 90a5c9
            

        ISAPI extension을 미리 읽어들이던지 미리 읽어들이지 않던지

        Packit 90a5c9
            관계없이 ISAPI extension은 CGI 스크립트와 동일한 권한과
        Packit 90a5c9
            제약을 따른다. 즉, ISAPI .dll 파일이 있는 디렉토리에 Options ExecCGI
        Packit 90a5c9
            필요하다.

        Packit 90a5c9
        Packit 90a5c9
            

        mod_isapi의 ISAPI 지원에 대한 자세한

        Packit 90a5c9
            내용과 설명은 추가 설명개발자 정보를 참고하라.

        Packit 90a5c9
        top
        Packit 90a5c9
        Packit 90a5c9

        추가 설명

        Packit 90a5c9
        Packit 90a5c9
            

        아파치 ISAPI 구현은 비동기 입출력에 대한 "마이크로소프트

        Packit 90a5c9
            특유의" 확장기능을 제외한 ISAPI 2.0 규약을 모두 만족한다.
        Packit 90a5c9
            아파치의 입출력 구조로는 ISAPI가 사용할 수 있는 방식으로
        Packit 90a5c9
            비동기 입출력을 할 수 없다. ISA가 비동기 입출력과 같이 지원하지
        Packit 90a5c9
            않는 기능을 사용하려 한다면, 디버깅에 도움을 주기위해 오류
        Packit 90a5c9
            로그에 기록을 남긴다. 로그가 매우 커질 수 있기때문에
        Packit 90a5c9
            ISAPILogNotSupported Off 지시어를 사용하면
        Packit 90a5c9
            로그에 기록하지 않는다.

        Packit 90a5c9
        Packit 90a5c9
            

        Microsoft IIS와 같은 서버는 ISAPI extension을 메모리로

        Packit 90a5c9
            읽어들여서 메모리 사용량이 매우 많지 않거나 특별히 설정하지
        Packit 90a5c9
            않는한 그대로 메모리에 둔다. 아파치는 현재 ISAPICacheFile 지시어를 사용하지
        Packit 90a5c9
            않는다면 요청을 받을때마다 ISAPI extension을 메모리에 읽어들이고
        Packit 90a5c9
            버린다. 비효율적이지만, 아파치의 메모리 구조상 이것이 가장
        Packit 90a5c9
            효율적인 방법이다. 여러 ISAPI 모듈이 아파치 서버와 약간
        Packit 90a5c9
            호환이 안맞기때문에 서버의 안정성을 위해 모듈을 메모리에서
        Packit 90a5c9
            버린다.

        Packit 90a5c9
        Packit 90a5c9
            

        또, 아파치는 ISAPI Extension을 지원하지만, ISAPI

        Packit 90a5c9
            Filter를 지원하지 않음을 기억하라. 나중에 필터를
        Packit 90a5c9
            지원할 수 있지만, 현재는 계획이 없다.

        Packit 90a5c9
        top
        Packit 90a5c9
        Packit 90a5c9

        개발자 정보

        Packit 90a5c9
        Packit 90a5c9
            

        아파치 2.0 mod_isapi 모듈을 프로그래밍한다면,

        Packit 90a5c9
            ServerSupportFunction 호출을 다음 지시어로
        Packit 90a5c9
            제한해야 한다.

        Packit 90a5c9
        Packit 90a5c9
            
        Packit 90a5c9
              
        HSE_REQ_SEND_URL_REDIRECT_RESP
        Packit 90a5c9
              
        사용자를 다른 위치로 리다이렉션한다.
        Packit 90a5c9
              완전한 URL을 사용해야 한다 (예를 들어,
        Packit 90a5c9
              http://server/location).
        Packit 90a5c9
        Packit 90a5c9
              
        HSE_REQ_SEND_URL
        Packit 90a5c9
              
        사용자를 다른 위치로 리다이렉션한다.
        Packit 90a5c9
              완전한 URL이 아니며, 프로토콜과 서버명을 넘길 수 없다
        Packit 90a5c9
              (예를 들어, /location같은 것만 가능).
        Packit 90a5c9
              브라우저가 아니라 서버가 리다이렉션을 처리한다.
        Packit 90a5c9
              

        경고

        Packit 90a5c9
                

        최근 문서를 보면 Microsoft가 두 HSE_REQ_SEND_URL

        Packit 90a5c9
                기능간의 차이를 없앤 것처럼 보인다. 아파치는 계속 이
        Packit 90a5c9
                둘의 아규먼트 조건과 행동을 다르게 처리할 것이다.

        Packit 90a5c9
              
        Packit 90a5c9
        Packit 90a5c9
              
        HSE_REQ_SEND_RESPONSE_HEADER
        Packit 90a5c9
              
        headers 문자열 아규먼트에 빈줄이 (줄바꿈문자가 두번
        Packit 90a5c9
              연속) 있다면 아파치는 헤더 다음 내용을 응답 내용으로 사용한다.
        Packit 90a5c9
              headers 아규먼트가 NULL로 끝나기때문에, 응답 내용에 NULL을
        Packit 90a5c9
              사용할 수 없다.
        Packit 90a5c9
        Packit 90a5c9
              
        HSE_REQ_DONE_WITH_SESSION
        Packit 90a5c9
              
        ISAPI가 처리를 마치면 세션이 끝나기때문에 아파치는
        Packit 90a5c9
              아무 일도 하지 않는다.
        Packit 90a5c9
        Packit 90a5c9
              
        HSE_REQ_MAP_URL_TO_PATH
        Packit 90a5c9
              
        아파치는 가상 이름을 물리적(실제) 이름으로 변환한다.
        Packit 90a5c9
        Packit 90a5c9
              
        HSE_APPEND_LOG_PARAMETER
        Packit 90a5c9
              
        Packit 90a5c9
                문구를 아래 로그중 한곳에 남긴다.
        Packit 90a5c9
        Packit 90a5c9
                
          Packit 90a5c9
                    
        • CustomLog
        • Packit 90a5c9
                    지시어의 \"%{isapi-parameter}n\" 항목에
          Packit 90a5c9
          Packit 90a5c9
                    
        • ISAPIAppendLogToQuery
        • Packit 90a5c9
                    On 지시어를 사용하여 %q
          Packit 90a5c9
                    로그 항목에
          Packit 90a5c9
          Packit 90a5c9
                    
        • ISAPIAppendLogToErrors
        • Packit 90a5c9
                    On 지시어를 사용하여 오류 로그에
          Packit 90a5c9
                  
          Packit 90a5c9
          Packit 90a5c9
                  

          첫번째로 나온 %{isapi-parameter}n 항목은

          Packit 90a5c9
                  언제나 사용할 수 있으며 권장한다.

          Packit 90a5c9
                
          Packit 90a5c9
          Packit 90a5c9
                
          HSE_REQ_IS_KEEP_CONN
          Packit 90a5c9
                
          협상된 Keep-Alive 상태를 반환한다.
          Packit 90a5c9
          Packit 90a5c9
                
          HSE_REQ_SEND_RESPONSE_HEADER_EX
          Packit 90a5c9
                
          fKeepConn 옵션을 무시하는 것을 제외하고는
          Packit 90a5c9
                문서에 나온데로 동작한다.
          Packit 90a5c9
          Packit 90a5c9
                
          HSE_REQ_IS_CONNECTED
          Packit 90a5c9
                
          요청이 중간에 끊어졌다면 false를 반환한다.
          Packit 90a5c9
              
          Packit 90a5c9
          Packit 90a5c9
              

          지원하지 않는 ServerSupportFunction 호출을

          Packit 90a5c9
              하면 아파치는 FALSE를 반환하고
          Packit 90a5c9
              GetLastError 값을
          Packit 90a5c9
              ERROR_INVALID_PARAMETER로 설정한다.

          Packit 90a5c9
          Packit 90a5c9
              

          ReadClient는 (ISAPIReadAheadBuffer로 정의한)

          Packit 90a5c9
              초기버퍼크기를 넘어선 요청 내용을 가져온다.
          Packit 90a5c9
              ISAPIReadAheadBuffer 설정 (ISAPI
          Packit 90a5c9
              핸들러를 부르기전 버퍼의 바이트수) 보다 짧은 요청은 extension을
          Packit 90a5c9
              부를때 전부 전달된다. 요청이 길면, ISAPI extension은
          Packit 90a5c9
              ReadClient로 나머지 요청 내용을 가져와야 한다.

          Packit 90a5c9
          Packit 90a5c9
              

          WriteClient를 지원하지만,

          Packit 90a5c9
              HSE_IO_SYNC 옵션만 사용하거나 (0
          Packit 90a5c9
              값) 아무 옵션도 사용하지 않아야 한다. 다른
          Packit 90a5c9
              WriteClient 요청은 FALSE를 반환하며
          Packit 90a5c9
              실패하고, GetLastError 값은
          Packit 90a5c9
              ERROR_INVALID_PARAMETER가 된다.

          Packit 90a5c9
          Packit 90a5c9
              

          GetServerVariable은 지원하지만, (다른 서버에서

          Packit 90a5c9
              정의하는) 확장 서버변수는 없다.
          Packit 90a5c9
              GetServerVariable에서 모든 일반적인 아파치
          Packit 90a5c9
              CGI 환경변수와 ALL_HTTP, ALL_RAW
          Packit 90a5c9
              값을 사용할 수 있다.

          Packit 90a5c9
          Packit 90a5c9
              

          아파치 2.0 mod_isapi는 이후 ISAPI 규약에

          Packit 90a5c9
              나온 추가 기능을 지원하고, 비동기 입출력과
          Packit 90a5c9
              TransmitFile 기능을 조금 흉내낸다. 또, ISAPI
          Packit 90a5c9
              .dll을 미리 읽어들여서 성능을 높이는 아파치 1.3
          Packit 90a5c9
              mod_isapi에는 없는 기능을 지원한다.

          Packit 90a5c9
          Packit 90a5c9
          top
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          설명:ISAPI exntension의 HSE_APPEND_LOG_PARAMETER
          Packit 90a5c9
          요청을 오류 로그에 기록한다
          Packit 90a5c9
          문법:ISAPIAppendLogToErrors on|off
          Packit 90a5c9
          기본값:ISAPIAppendLogToErrors off
          Packit 90a5c9
          사용장소:주서버설정, 가상호스트, directory, .htaccess
          Packit 90a5c9
          Override 옵션:FileInfo
          Packit 90a5c9
          상태:Base
          Packit 90a5c9
          모듈:mod_isapi
          Packit 90a5c9
          Packit 90a5c9
              

          ISAPI exntension의 HSE_APPEND_LOG_PARAMETER

          Packit 90a5c9
              요청을 오류 로그에 기록한다.

          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          top
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          설명:ISAPI exntension의 HSE_APPEND_LOG_PARAMETER
          Packit 90a5c9
          요청을 질의문자열에 기록한다
          Packit 90a5c9
          문법:ISAPIAppendLogToQuery on|off
          Packit 90a5c9
          기본값:ISAPIAppendLogToQuery on
          Packit 90a5c9
          사용장소:주서버설정, 가상호스트, directory, .htaccess
          Packit 90a5c9
          Override 옵션:FileInfo
          Packit 90a5c9
          상태:Base
          Packit 90a5c9
          모듈:mod_isapi
          Packit 90a5c9
          Packit 90a5c9
              

          ISAPI exntension의 HSE_APPEND_LOG_PARAMETER

          Packit 90a5c9
              요청을 질의문자열에 기록한다 (CustomLog %q
          Packit 90a5c9
              항목에 덧붙인다).

          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          top
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          설명:서버가 시작할때 메모리로 읽어들일 ISAPI .dll 파일들
          Packit 90a5c9
          문법:ISAPICacheFile file-path [file-path]
          Packit 90a5c9
          ...
          Packit 90a5c9
          사용장소:주서버설정, 가상호스트
          Packit 90a5c9
          상태:Base
          Packit 90a5c9
          모듈:mod_isapi
          Packit 90a5c9
          Packit 90a5c9
              

          아파치 서버가 시작할때 메모리로 읽어들여서 서버를 종료할때까지

          Packit 90a5c9
              메모리에 남아있을 파일명을 공백으로 구분하여 지정한다. 이
          Packit 90a5c9
              지시어는 ISAPI .dll 파일별로 여러번 사용할 수 있다. 파일의
          Packit 90a5c9
              전체 경로를 적는다. 절대 경로가 아니면 ServerRoot에 상대 경로로 받아들인다.

          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          top
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          설명:비동기 ISAPI 콜백을 지원하는 척한다
          Packit 90a5c9
          문법:ISAPIFakeAsync on|off
          Packit 90a5c9
          기본값:ISAPIFakeAsync off
          Packit 90a5c9
          사용장소:주서버설정, 가상호스트, directory, .htaccess
          Packit 90a5c9
          Override 옵션:FileInfo
          Packit 90a5c9
          상태:Base
          Packit 90a5c9
          모듈:mod_isapi
          Packit 90a5c9
          Packit 90a5c9
              

          on으로 설정하면 비동기 ISAPI 콜백 지원을 흉내낸다.

          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          top
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          설명:ISAPI extension이 지원하지 않는 기능을 요청하면
          Packit 90a5c9
          로그에 기록한다
          Packit 90a5c9
          문법:ISAPILogNotSupported on|off
          Packit 90a5c9
          기본값:ISAPILogNotSupported off
          Packit 90a5c9
          사용장소:주서버설정, 가상호스트, directory, .htaccess
          Packit 90a5c9
          Override 옵션:FileInfo
          Packit 90a5c9
          상태:Base
          Packit 90a5c9
          모듈:mod_isapi
          Packit 90a5c9
          Packit 90a5c9
              

          ISAPI extension이 지원하지 않는 기능을 요청하면 서버

          Packit 90a5c9
              오류 로그에 기록한다. 나중에 관리자가 문제를 추적하는데
          Packit 90a5c9
              도움이 된다. 원하는 모든 ISAPI 모듈이 정상적으로 동작하면
          Packit 90a5c9
              다시 off로 되돌려야 한다.

          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          top
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          설명:ISAPI extension의 미리읽기버퍼(read ahead buffer)
          Packit 90a5c9
          크기
          Packit 90a5c9
          문법:ISAPIReadAheadBuffer size
          Packit 90a5c9
          기본값:ISAPIReadAheadBuffer 49152
          Packit 90a5c9
          사용장소:주서버설정, 가상호스트, directory, .htaccess
          Packit 90a5c9
          Override 옵션:FileInfo
          Packit 90a5c9
          상태:Base
          Packit 90a5c9
          모듈:mod_isapi
          Packit 90a5c9
          Packit 90a5c9
              

          ISAPI extension을 처음 호출할때 미리읽기버퍼의 최대 크기를

          Packit 90a5c9
              지정한다. (이 크기보다 큰) 나머지 자료는 ReadClient
          Packit 90a5c9
              콜백을 사용하여 읽어야 한다. 어떤 ISAPI extension은
          Packit 90a5c9
              ReadClient 기능을 지원하지 않는다. 이 경우
          Packit 90a5c9
              ISAPI extension 제작자에게 문의하라.

          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9
          Packit 90a5c9

          가능한 언어:  en  |

          Packit 90a5c9
           fr  |
          Packit 90a5c9
           ko 

          Packit 90a5c9
          top

          Comments

          Notice:
          This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
          Packit 90a5c9
          <script type="text/javascript">
          Packit 90a5c9
          var comments_shortname = 'httpd';
          Packit 90a5c9
          var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_isapi.html';
          Packit 90a5c9
          (function(w, d) {
          Packit 90a5c9
              if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
          Packit 90a5c9
                  d.write('
          <\/div>');
          Packit 90a5c9
                  var s = d.createElement('script');
          Packit 90a5c9
                  s.type = 'text/javascript';
          Packit 90a5c9
                  s.async = true;
          Packit 90a5c9
                  s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
          Packit 90a5c9
                  (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
          Packit 90a5c9
              }
          Packit 90a5c9
              else { 
          Packit 90a5c9
                  d.write('
          Comments are disabled for this page at the moment.<\/div>');
          Packit 90a5c9
              }
          Packit 90a5c9
          })(window, document);
          Packit 90a5c9
          //--></script>
          Packit 90a5c9

          Copyright 2018 The Apache Software Foundation.
          Licensed under the Apache License, Version 2.0.

          Packit 90a5c9

          모듈 | 지시어들 | FAQ | 용어 | 사이트맵

          <script type="text/javascript">
          Packit 90a5c9
          if (typeof(prettyPrint) !== 'undefined') {
          Packit 90a5c9
              prettyPrint();
          Packit 90a5c9
          }
          Packit 90a5c9
          //--></script>
          Packit 90a5c9
          </body></html>