Creative Commons License

Microsoft .NET

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

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

.

웹개발

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

[ASP.NET] HTTP Module

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

HttpModule 은 요청에 대한 전처리 및 후처리를 가능케 하는 컴포넌트 이다.

IHttpModule 를 구현하는 이 클래스는 init 메서드에서 HttpApplication 개체에 대한 참조를 얻어 특정 이벤트를 구독하게 만든다. 웹 응용프로그램 실행의 중추 역할을 하는 HttpApplication 의 모든 이벤트를 구독할 수 있으므로 강력한 인터셉터를 구현할 수 있다.

즉, 요청/응답 메커니즘과의 통합과 까다로운 상호작용이 중대한 요소인 수많은 저 수준 작업들을 수행하기에 적합하다. 예컨대, 커스텀 모듈을 사용해서 사용자 지정 인증, 압축, 인코딩, 로깅,요청 분석 등을 구현하는 등의 작업들을 수행할 수 있다. 또한 데이터의 들어오고 나가는 스트림을 검토하는 역할을 할 수 있다.

즉,요청 전,후를 가로채는 인터셉터 같은 역할을 수행한다

HttpHandler 는 고전적인 ISAPI Filter(특정 서버 이벤트들을 처리하기 전에 이들을 가로채는 컴포넌트이다) 에 대응되는 개념이다

사용 예>
1. 웹 응용프로그램의 장애상황을 로깅 한다
2. 사용자의 페이지 이동을 로깅 한다
3. 요청이 처리되기 전에 요청내용을 확인 혹은 필터링 한다
4. 응답 헤더를 추가한다
    등등등 …

모듈로 구성할 때의 이점
요청 인터셉터를 별도의 모듈로 만듦으로써 재사용 및 유지/보수가 용이하다
(Global.asax 또는 각 페이지에 인터셉터 코드 삽입 시 재사용과 유지보수 비용이 많이 든다)

-  Custom HttpModule 구현 방법 ?
1. 모듈로 사용할 클래스는 IHttpModule 를 구현 하도록 한다

2. init 와 Dispose 를 오버라이딩 한다

3. Init 메서드는 모듈을 로드 하기 위해 HttpApplication 클래스에 의해 호출된다.
    우리는 이 Init  메서드 에서 매개변수로 넘어온 HttpApplication 으로 특정 요청 이벤트에 연결 시킨다

4. 구성파일에 HttpModule 를 등록한다 (machine.config 또는 web.config)

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