ASP.NET 의 HTTP Handler 와 HTTP Module 의 상호관계와 차이점.

728x90
반응형

HTTP Handler 란?

ASP.NET HTTP 처리기는 ASP.NET 웹 응용 프로그램에 대한 요청에 응답하여 실행되는 프로세스 ( endpoint )입니다. 가장 일반적인 처리기는 .aspx 파일을 처리하는 ASP.NET 페이지 처리기입니다. 사용자가 .aspx 파일을 요청하면 페이지에서 페이지 처리기를 통해 요청이 처리됩니다. 브라우저에 사용자 정의 출력을 렌더링하는 고유 한 HTTP 핸들러를 작성할 수 있습니다. ( msdn )

HTTP 처리기는 요청을 처리하며 일반적으로 요청과 관련된 필요한 비즈니스 로직을 시작합니다. 사용자 지정 처리기는 System.Web.IHttpHandler 인터페이스를 구현해야합니다. 또한 요청을 분석하여 적합한 HTTP 핸들러를 결정하는 핸들러 팩토리를 작성할 수 있습니다. 사용자 정의 핸들러 팩토리는 System.Web.IHttpHandlerFactory 인터페이스를 구현합니다.

 

 


HTTP Module 이란?

HTTP 모듈은 응용 프로그램에 대한 모든 요청에 ​​대해 호출되는 어셈블리입니다. HTTP 모듈은 ASP.NET 요청 파이프 라인의 일부로 호출되며 요청 전체에서 수명주기 이벤트에 액세스 할 수 있습니다. HTTP 모듈을 사용하면 들어오고 나가는 요청을 검사하고 요청에 따라 조치를 취할 수 있습니다. ( msdn )

 

HTTP 모듈은 Handler 전후에 실행되며 요청과 상호 작용하는 방법을 제공합니다. 사용자 지정 모듈은 System.Web.IHttpModule 인터페이스를 구현해야합니다. 모듈은 일반적으로 System.Web.IHttpModule 클래스 (Global.asax.cs 또는 .vb 파일 내에서 구현 됨)의 이벤트와 동기화됩니다.

 

다음은 모듈을 구현할 때 고려해야 할 이벤트 목록으로 구성됩니다.

1.BeginRequest
2.AuthenticateRequest
3.AuthorizeRequest
4.ResolveRequestCache
5.AcquireRequestState
6.PreRequestHandlerExecute
7.PostRequestHandlerExecute
8.ReleaseRequestState
9.UpdateRequestCache
10.EndRequest
11.PreSendRequestHeaders
12.PreSendRequestContent
13.Error

 


상호관계

HTTP 처리기와 HTTP 모듈 간의 상관 관계는 ASP.NET 응용 프로그램의 핵심 부분입니다.

모든 요청은 응용 프로그램의 다양한 영역 (예 : 인증 및 세션 정보)을 다루는 여러 HTTP 모듈을 통과합니다. 각 모듈을 통과 한 후에는 요청이 단일 HTTP 처리기에 할당되어 시스템이 요청에 응답하는 방법을 결정합니다. 요청 핸들러가 완료되면 응답이 HTTP 모듈을 통해 사용자에게 다시 전달됩니다.

 


차이점

HTTP Module
1. 다른 Global.asax와 유사한 모듈 식 코드와 같은 것을 나타냅니다.
2. 모든 페이지 요청에 사용되는 코드를 나타냅니다.
3. 이것은 파이프 라인에도 참여하는 객체입니다.

HTTP Handler
1. 하나의 요청에 대한 처리기입니다.
2. 단일 페이지와 비슷합니다.
3. 이들은 ASP.NET 파이프 라인의 엔드 포인트 개체입니다.
4. 이들은 본질적으로 요청을 처리하고 응답을 생성합니다.

 

 

 

 

http://aspboss.blogspot.com/2011/03/what-is-http-handler-and-http-module-in.html

 

728x90