code

ASP.NET의 HttpHandler 란?

codestyles 2020. 11. 18. 09:06
반응형

ASP.NET의 HttpHandler 란?


ASP.NET의 HttpHandler 란 무엇입니까? 왜 그리고 어떻게 사용됩니까?


가장 간단한 용어로 ASP.NET HttpHandler는 System.Web.IHttpHandler인터페이스 를 구현하는 클래스입니다 .

ASP.NET HTTPHandlers는 ASP.NET 웹 응용 프로그램 서버에 대한 요청을 가로채는 역할을합니다. ASP.NET 사이트에 대한 요청에 대한 응답으로 프로세스로 실행됩니다. 가장 일반적인 처리기는 .aspx 파일을 처리하는 ASP.NET 페이지 처리기입니다. 사용자가 .aspx 파일을 요청하면 페이지 처리기를 통해 페이지에서 요청이 처리됩니다.

ASP.NET은 몇 가지 기본 HTTP 처리기를 제공합니다 .

  • 페이지 처리기 (.aspx) : 웹 페이지를 처리합니다.
  • 사용자 제어 처리기 (.ascx) : 웹 사용자 제어 페이지를 처리합니다.
  • 웹 서비스 처리기 (.asmx) : 웹 서비스 페이지를 처리합니다.
  • 추적 처리기 (trace.axd) : 추적 기능을 처리합니다.

사용자 지정 출력을 브라우저에 렌더링하는 사용자 지정 HTTP 처리기만들 수 있습니다 . ASP.NET의 HTTP 처리기에 대한 일반적인 시나리오는 다음과 같습니다.

  • 동적으로 생성 된 이미지 (예 : 차트) 또는 크기 조정 된 사진 제공.
  • RSS 형식의 XML을 내보내는 RSS 피드

당신은 구현IHttpHandler 동기 핸들러와 생성 인터페이스를 IHttpAsyncHandler비동기 처리기를 만들 수있는 인터페이스를. 인터페이스를 사용하려면 ProcessRequest메서드와 IsReusable속성 을 구현해야합니다 .

ProcessRequest요청의 실제 처리가 이루어지는 방법 핸들 동안에 부울 IsReusable처리기는 (증가 된 성능) 또는 새로운 처리기 각 요청에 대해 요구되는지를 재사용 풀링 할 수 있는지 여부를 지정하는 속성.


HttpHandler(나 IHttpHandler) 기본적으로 콘텐츠를 제공 할 책임이 아무것도이다. ASP.NET 페이지 (aspx)는 처리기 유형입니다.

예를 들어 웹 서버 자체가 아닌 데이터베이스에서 이미지 등을 제공하거나 SOAP / WCF 등이 아닌 간단한 POX 서비스를 작성하기 위해 직접 작성할 수 있습니다.


HttpHandler 예제,

ASP.NET 2.0의 HTTP 처리기

핸들러는 브라우저의 요청을 처리합니다. 브라우저가 관리하는 요청은 파일 확장자 또는 핸들러를 직접 호출하여 처리됩니다. 들어오는 Http 요청을 서비스하기위한 저수준 요청 및 응답 API는 Asp.Net의 Http 핸들러입니다. 모든 처리기는 System.Web 네임 스페이스에있는 IHttpHandler 인터페이스를 구현합니다. 핸들러는 ISAPI (Internet Server Application Programming Interface) 확장과 다소 유사합니다.

IHttpHandler 인터페이스를 구현하여 동기 처리기를 만들고 IHttpAsyncHandler 인터페이스를 구현하여 비동기 처리기를 만듭니다. 인터페이스를 사용하려면 ProcessRequest 메서드 및 IsReusable 속성을 구현해야합니다. ProcessRequest 메서드는 요청에 대한 실제 처리를 처리하는 반면 Boolean IsReusable 속성은 처리기를 풀링하여 성능을 향상시킬 수 있는지 또는 각 요청에 새 처리기가 필요한지 여부를 지정합니다.

.ashx 파일 확장자는 사용자 정의 핸들러 용으로 예약되어 있습니다. 파일 이름 확장명이 .ashx 인 사용자 지정 처리기를 만들면 IIS 및 ASP.NET에 자동으로 등록됩니다. 대체 파일 확장명을 사용하기로 선택한 경우 IIS 및 ASP.NET 내에서 확장명을 등록해야합니다. .ashx 이외의 확장자를 사용하는 장점은 하나의 핸들러에 여러 파일 확장자를 지정할 수 있다는 것입니다.

HTTP 처리기 구성

구성 섹션 처리기는 들어오는 URL을 IHttpHandler 또는 IHttpHandlerFactory 클래스에 매핑하는 역할을합니다. 컴퓨터, 사이트 또는 응용 프로그램 수준에서 선언 할 수 있습니다. 하위 디렉터리는 이러한 설정을 상속합니다. 관리자는 태그 지시문을 사용하여 섹션을 구성합니다. 지시문은 하향식 순차로 해석되고 처리됩니다. 섹션 핸들러에 다음 구문을 사용하십시오.

HTTP 처리기 만들기

HTTP 처리기를 만들려면 IHttpHandler 인터페이스를 구현해야합니다. IHttpHandler 인터페이스에는 다음 서명이있는 하나의 메서드와 하나의 속성이 있습니다. void ProcessRequest (HttpContext); bool IsReusable {get;}


System.Web.IHttpHandlerInterface 를 구현하는 모든 클래스 HttpHandler. 그리고이 클래스는 ASP.NET 사이트에 대한 요청에 대한 응답으로 프로세스로 실행됩니다.

가장 일반적인 처리기는 .aspx 파일을 처리하는 ASP.NET 페이지 처리기입니다. 사용자가 .aspx 파일을 요청하면 페이지 핸들러 ( System.Web.IHttpHandler인터페이스 를 구현하는 클래스)를 통해 페이지에서 요청을 처리합니다 .

사용자 지정 출력을 브라우저에 렌더링하는 사용자 지정 HTTP 처리기를 만들 수 있습니다.

일부 ASP.NET 기본 처리기는 다음과 같습니다.

  1. 페이지 처리기 (.aspx) – 웹 페이지 처리
  2. 사용자 제어 처리기 (.ascx) – 웹 사용자 제어 페이지를 처리합니다.
  3. 웹 서비스 처리기 (.asmx) – 웹 서비스 페이지를 처리합니다.
  4. 추적 처리기 (trace.axd) – 추적 기능을 처리합니다.

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


ASP.NET HTTP핸들러 (자주 "엔드 포인트"라한다)를 처리하는 ASP.NET 웹 응용 프로그램에 만들어진 요청에 응답이 실행됩니다. 가장 일반적인 처리기는 .aspx 파일을 처리하는 ASP.NET 페이지 처리기입니다. 사용자가를 요청 .aspx file하면 페이지 처리기를 통해 페이지에서 요청이 처리됩니다.

ASP.NET 페이지 처리기는 하나의 처리기 유형일뿐입니다. ASP.NET에는 .NET 용 웹 서비스 처리기와 같은 몇 가지 다른 기본 제공 처리기가 함께 제공됩니다 .asmx files.

응용 프로그램에서 파일 이름 확장명을 사용하여 식별 할 수있는 특수 처리를 원하는 경우 사용자 지정 HTTP 처리기를 만들 수 있습니다. 예를 들어 다음 시나리오는 사용자 지정 HTTP 처리기를 잘 사용하는 것입니다.

RSS 피드 사이트에 대한 RSS 피드 를 만들려면 RSS 형식의 XML을 내보내는 처리기를 만들 수 있습니다. 그런 다음 애플리케이션의 .rss 확장자 (예 :)를 사용자 정의 핸들러에 바인딩 할 수 있습니다. 사용자가 사이트에 .rss로 끝나는 요청을 보내면 ASP.NET은 처리기를 호출하여 요청을 처리합니다.

이미지 서버 웹 응용 프로그램에서 다양한 크기의 이미지를 제공하도록하려면 이미지 크기를 조정하는 사용자 지정 처리기를 작성한 다음 처리기의 응답으로 사용자에게 다시 보낼 수 있습니다.

HTTP handlers have access to the application context, including the requesting user's identity (if known), application state, and session information. When an HTTP handler is requested, ASP.NET calls the ProcessRequest method on the appropriate handler. The handler's ProcessRequest method creates a response, which is sent back to the requesting browser. As with any page request, the response goes through any HTTP modules that have subscribed to events that occur after the handler has run.

참고URL : https://stackoverflow.com/questions/391130/what-is-an-httphandler-in-asp-net

반응형