INFO: ASP.NET HTTP 모듈 및 HTTP 처리기 개요

기술 자료 번역 기술 자료 번역
기술 자료: 307985 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR307985
모두 확대 | 모두 축소

이 페이지에서

요약

본 문서에서는 ASP.NET HTTP 모듈과 HTTP 처리기를 소개합니다.

ASP.NET 개요에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
305140 INFO: ASP.NET 가이드

추가 정보

HTTP 모듈과 HTTP 처리기는 ASP.NET 아키텍처의 중요한 부분입니다. 요청이 처리되는 동안 각 요청은 여러 HTTP 모듈(예: 인증 모듈 및 세션 모듈)에서 처리된 다음 단일 HTTP 처리기에서 처리됩니다. 처리기가 요청을 처리하고 나면 요청이 다시 HTTP 모듈로 되돌아 갑니다.

본 문서는 다음과 같은 내용으로 구성되어 있습니다.

HTTP 모듈

모듈은 처리기가 실행되기 전과 후에 호출됩니다. 모듈을 사용하면 개발자가 각 개별 요청을 가로채거나 참여하거나 수정할 수 있습니다. 모듈은 System.Web 네임스페이스에 있는 IHttpModule 인터페이스를 구현합니다.

사용 가능한 이벤트

HttpApplication 클래스는 모듈이 동기화할 수 있는 많은 이벤트를 제공합니다. 각 요청에서 모듈이 동기화할 수 있는 이벤트는 다음과 같습니다. 다음 이벤트는 순서대로 나열한 것입니다.
  • BeginRequest: 요청이 시작되었습니다. 요청의 시작 부분에서 작업을 수행해야 하는 경우(예: 각 페이지 맨 위에 광고 배너 표시) 이 이벤트를 동기화합니다.
  • AuthenticateRequest: 사용자 지정 인증 구성표를 플러그 인하려면(예: 암호를 확인하기 위해 데이터베이스에서 사용자를 검색하는 경우) 이 이벤트를 동기화하는 모듈을 작성하고 원하는 방법으로 사용자를 인증합니다.
  • AuthorizeRequest: 이 이벤트는 인증 메커니즘(예: 시스템이 아니라 데이터베이스에 액세스 제어 목록 저장)을 구현하기 위해 내부적으로 사용됩니다. 이 이벤트를 무시할 수도 있지만 그렇게 할 만한 경우는 별로 없습니다.
  • ResolveRequestCache: 이 이벤트는 페이지가 출력 캐시에서 제공될 수 있는지 확인합니다. 캐싱 모듈(예: 메모리 캐시 대신 파일 기반 캐시 작성)을 직접 작성하려면 이 이벤트를 동기화하여 캐시에서 페이지를 서비스할지 여부를 결정합니다.
  • AcquireRequestState: 세션 상태를 상태 저장소에서 검색합니다. 상태 관리 모듈을 직접 작성하려면 이 이벤트를 동기화하여 상태 저장소에서 세션 상태를 가져옵니다.
  • PreRequestHandlerExecute: 이 이벤트는 HTTP 처리기가 실행되기 전에 발생합니다.
  • PostRequestHandlerExecute: 이 이벤트는 HTTP 처리기가 실행된 후에 발생합니다.
  • ReleaseRequestState: 세션 상태가 상태 저장소에 다시 저장됩니다. 사용자 지정 세션 상태 모듈을 작성하는 경우 상태 저장소에 상태를 다시 저장해야 합니다.
  • UpdateRequestCache: 이 이벤트는 출력을 다시 출력 캐시에 기록합니다. 사용자 지정 캐시 모듈을 작성 중인 경우 출력을 다시 캐시에 기록합니다.
  • EndRequest: 요청이 완료되었습니다. 요청으로부터 정보를 수집하는 디버깅 모듈을 작성한 다음 정보를 페이지에 기록할 수 있습니다.
다음 이벤트는 각 요청 전송을 동기화하기 위해 모듈에 사용할 수 있습니다. 이벤트 순서는 결정되어 있지 않습니다.
  • PreSendRequestHeaders: 이 이벤트는 헤더가 보내지기 전에 발생합니다. 헤더를 추가하려면 사용자 지정 모듈로부터 이 이벤트를 동기화할 수 있습니다.
  • PreSendRequestContent: 이 이벤트는 Response.Flush 메서드가 호출될 때 발생합니다. 콘텐츠를 추가하려면 사용자 지정 모듈로부터 이 이벤트를 동기화할 수 있습니다.
  • Error: 이 이벤트는 처리되지 않은 예외가 있을 때 발생합니다. 사용자 지정 오류 처리기 모듈을 작성하려면 이 이벤트를 동기화합니다.

HTTP 모듈 구성

<httpModules> 구성 섹션 처리기는 응용 프로그램 내에서 HTTP 모듈을 구성하는 작업을 담당합니다. 컴퓨터, 사이트 또는 응용 프로그램 수준에서 선언할 수 있습니다. <httpModules> 섹션 처리기에 아래의 구문을 사용하십시오.
<httpModules>
   <add type="[COM+ Class], [Assembly]" name="[ModuleName]" />
   <remove type="[COM+ Class], [Assembly]" name="[ModuleName]" />
   <clear />
</httpModules>
				

HTTP 모듈 만들기

HTTP 모듈을 만들려면 IHttpModule 인터페이스를 구현해야 합니다. IHttpModule 인터페이스에는 다음 서명을 가진 두 가지 메서드가 있습니다.
void Init(HttpApplication);
void Dispose();
				
HTTP 모듈 만들기에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
308000 HOWTO: Visual Basic .NET을 사용하여 ASP.NET HTTP 모듈 만들기
307996 HOWTO: Visual C# .NET을 사용하여 ASP.NET HTTP 모듈 만들기

HTTP 처리기

처리기는 개별 종점 요청을 처리하는 데 사용됩니다. 처리기를 사용하면 ASP.NET 프레임워크에서 응용 프로그램 내의 개별 HTTP URL이나 URL 확장 그룹을 처리할 수 있습니다. 모듈과 달리 요청을 처리하는 데 처리기가 하나만 사용됩니다. 모든 처리기는 System.Web 네임스페이스에 있는 IHttpHandler 인터페이스를 구현합니다. 처리기는 ISAPI(Internet Server Application Programming Interface) 확장과 비슷합니다.

HTTP 처리기 구성

<httpHandlers> 구성 섹션 처리기는 들어오는 URL을 IHttpHandler 또는 IHttpHandlerFactory 클래스로 매핑하는 작업을 담당합니다. 컴퓨터, 사이트 또는 응용 프로그램 수준에서 선언할 수 있습니다. 하위 디렉터리가 이 설정을 상속합니다.

관리자는 <add> 태그 지시문을 사용하여 <httpHandlers> 섹션을 구성합니다. <Add> 지시문은 위에서 아래의 순서로 해석되고 처리됩니다. <httpHandler> 섹션 처리기에 대해 아래의 구문을 사용하십시오.
<httpHandlers>
   <add verb="[verb list]" path="[path/wildcard]" type="[COM+ Class], [Assembly]" validate="[true/false]" />
   <remove verb="[verb list]" path="[path/wildcard]" />
   <clear />
</httpHandlers>
				

HTTP 처리기 만들기

HTTP 처리기를 만들려면 IHttpHandler 인터페이스를 구현해야 합니다. IHttpHandler 인터페이스에는 다음 서명을 가진 메서드 하나와 속성 하나가 있습니다.
void ProcessRequest(HttpContext);
bool IsReusable {get;}
				
참고: 세션 상태가 HTTP 처리기에서 필요하면 IRequiresSessionState 인터페이스도 구현해야 합니다. HTTP 처리기 만들기에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
308001 HOWTO: Visual C# .NET을 사용하여 ASP.NET HTTP 처리기 만들기
자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
307997 HOWTO: Visual Basic .NET을 사용하여 ASP.NET HTTP 처리기 만들기




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 307985 - 마지막 검토: 2005년 12월 23일 금요일 - 수정: 3.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
키워드:?
kbarttyperoadmap kbhttphandlers kbhttpmodule kbhttpruntime kbinfo KB307985

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com