Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

웹개발

이제 웹 기반 응용개발 지식은 거의 필수적으로 요구되는 시대입니다. 구체적인 웹 사이트 개발은 아니더라도 거시적인 웹 기반 서비스에 대한 지식 배양을 위해 할 것이 참 많네요 ^^

[ASP.NET] HTTP Handler

작성자 : 박종명
최초 작성일 : 2008-06-25 (수요일)
최종 수정일 : 2008-06-25 (수요일)
조회 수 : 3911

HTTP Handler 는 닷넷 웹 리소스 요청의  마지막 단계로 실제 요청 리소스를 제공하는 것을 담당하는 컴포넌트이며,
IHttpHandler Interface 를 구현하는 클래스의 인스턴스 이다.

이 클래스의 ProcessRequest 가 호출되면서 요청은 처리되어 진다.

예를 들어 닷넷 웹폼의 Page 클래스는 IHttpHandler Interface  를 구현하고 ProcessRequest 가 실행되면서
ViewState 로딩, Init, Load, PreRender 와 같은 이벤트를 발생시킨다.

Http 파이프라인에서 실제 요청 페이지 이전에 거치는 Http Handler Factory  는 요청 처리를 위한  처리기(Handler)의 인스턴스 를 생성 해 준다. 즉, aspx 페이지가 요청이 되면 machine.config 에 등록된 PageHandlerFactory 처리기로 생성되며 이는 요청된 실제 aspx 파일의 소스코드를 해석하고, 페이지를 나타내는 클래스의 컴파일 된 인스턴스를 반환한다

HttpHandler 는 고전적인 ISAPI Extension 에 대응되는 개념이다.

단, 기존의 ISAPI Extension 은 IIS Metabase 에 반드시 등록되어야만 했지만,  HttpHandler 은 구성파일에 등록하고 적절한 위치에 어셈블리가 존재하면 된다

또한 ashx 파일처럼 쉽게 처리기를 구현할 수도 있는데 이것의 장점은 웹폼의 다양한 추상화 과정이 필요 없는 페이지에 적합하다. 즉, ViewState 나 일련의 Page 처리흐름(init -> load) 등이 필요 없는 웹 리소스의 처리 속도 향상을 꽤 할 수 있다

Http 처리기들은 일반적인 웹 페이지 보다 더 빠르며, 상태관리와 포스트백 이벤트들이 필요치 않은 모든 경우에 유용하다

HttpHandler 는 처리 후 다음 요청을 위해 동일 처리기 사용을 목적으로 풀로써 관리될 수도 있다.

HttpHandler 는 동기(IHttpHandler) ,비 동기(IHttpAsyncHandler) 처리를 지원한다

-  Custom HttpHandler 구현 방법 ?
1. 처리기로 사용할 클래스는 IHttpMHandler 를 구현 하도록 한다
2. ProcessRequest 와 IsReusable 을 오버라이딩 한다
3. IsReusable 는 다음 요청 시 이 인스턴스의 재사용 유무를 Boolean 으로 반환한다
4. 구성파일에 HttpHandler 를 등록한다 (machine.config 또는 web.config)
5. IIS 에 등록되어 있지 않은 확장자를 사용할 경우 확장자 매핑을 시켜 준다

이름
비밀번호
홈페이지
MX <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요