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

요약

이 문서는 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:이 이벤트는 권한 부여 메커니즘 (예: 데이터베이스 대신 파일 시스템 액세스 제어 목록 (Acl)에 저장)을 구현 하려면 내부적으로 사용 됩니다. 이 이벤트를 무시할 수도 있지만 없는 많은 좋은 이유가 있습니다.
  • ResolveRequestCache:이 이벤트는 페이지 출력 캐시에서 제공 될 수 있으면 결정 합니다. 예를 들어, 빌드 파일 기반 캐시 메모리 캐시 런이 아닌 자신의 캐시 모듈을 작성 하려면 캐시에서 페이지를 서비스할지 여부를 결정 하려면이 이벤트를 동기화 합니다.
  • AcquireRequestState: 상태 저장소에서 세션 상태를 검색 합니다. 상태 관리 모듈을 구축 하려는 하 여 상태 저장소에서 세션 상태를 가져옵니다이 이벤트를 동기화 합니다.
  • PreRequestHandlerExecute: HTTP 처리기가 실행 되기 전에이 이벤트가 발생 합니다.
  • PostRequestHandlerExecute:이 이벤트는 HTTP 처리기가 실행 된 후 발생 합니다.
  • ReleaseRequestState: 세션 상태 상태 저장소에 다시 저장 됩니다. 사용자 지정 세션 상태 모듈을 작성 하는 경우 시 상태 저장소에 다시 저장 해야 합니다.
  • UpdateRequestCache:이 이벤트 기록 출력 출력 캐시 합니다. 캐시를 다시 출력을 쓰는 사용자 지정 캐시 모듈을 구축 합니다.
  • EndRequest: 요청이 완료 되었습니다. 요청 으로부터 정보를 수집 하 고 다음 페이지에 정보를 기록 하는 디버깅 모듈을 작성 하는 것이 좋습니다.
다음 이벤트는 각 요청 전송을 동기화 하기 위해 모듈에 사용할 수 있습니다. 이러한 이벤트의 순서는 명확 하지 않습니다.
  • PreSendRequestHeaders:이 이벤트는 헤더를 보내기 전에 발생 합니다. 추가 헤더를 추가 하려면 사용자 지정 모듈 로부터이 이벤트를 동기화 할 수 있습니다.
  • PreSendRequestContent: Response.Flush 메서드를 호출할 때이 이벤트가 발생 합니다. 추가 콘텐츠를 추가 하려면 사용자 지정 모듈 로부터이 이벤트를 동기화 할 수 있습니다.
  • 오류: 처리 되지 않은 예외가 발생 하면이 이벤트가 발생 합니다. 사용자 지정 오류 처리기 모듈을 작성 하려면이 이벤트를 동기화 합니다.

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 방법: Visual Basic.NET을 사용 하 여 ASP.NET HTTP 모듈 만들기
307996 방법: C#.NET을 사용 하 여 ASP.NET HTTP 모듈 만들기

HTTP 처리기

처리기는 개별 종점 요청을 처리 하는 데 사용 됩니다. 처리기는 개별 HTTP Url 또는 URL 확장 응용 프로그램 내에서 그룹을 처리 하는 데 ASP.NET 프레임 워크를 사용 합니다. 모듈과 달리 요청을 처리 하는 처리기를 하나만 사용 됩니다. 모든 처리기는 System.Web 네임 스페이스에는 IHttpHandler 인터페이스를 구현 합니다. 처리기는 인터넷 서버 응용 프로그래밍 인터페이스 (ISAPI) 확장에 다소 유사 합니다.

HTTP 처리기 구성

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

관리자는 태그 지시문 < 추가 > < httpHandlers > 섹션을 구성할 수 사용. < 추가 > 지시문 해석 하 고 위에서 아래로 순서 대로 처리 됩니다. < 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;}

참고: IRequiresSessionState 인터페이스를 구현 해야 HTTP 처리기에서 세션 상태가 필요 합니다.
HTTP 처리기를 만드는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하려면 아래 문서 번호를 클릭 합니다.
308001 방법: C#.NET을 사용 하 여 ASP.NET HTTP 처리기 만들기
자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하려면 아래 문서 번호를 클릭 합니다.
307997 방법: Visual Basic.NET을 사용 하 여 ASP.NET HTTP 처리기 만들기
속성

문서 ID: 307985 - 마지막 검토: 2017. 2. 6. - 수정: 2

피드백