ASP.NET의 HttpHandler란?
ASP.NET의 HttpHandler란 무엇입니까?그것은 왜 그리고 어떻게 사용됩니까?
ASP HttpHandler는 .NET HttpHandler를 입니다.System.Web.IHttpHandler인터페이스
ASP.NET HTTP 핸들러는 ASP.NET 웹 응용 프로그램 서버에 대한 요청을 가로채는 역할을 합니다.ASP.NET 사이트에 대한 요청에 대한 응답으로 프로세스로 실행됩니다.가장 일반적인 처리기는 .aspx 파일을 처리하는 ASP.NET 페이지 처리기입니다.사용자가 .aspx 파일을 요청하면 페이지 처리기를 통해 페이지에서 요청을 처리합니다.
ASP.NET은 몇 가지 기본 HTTP 핸들러를 제공합니다.
- 페이지 핸들러(.aspx): 웹 페이지를 처리합니다.
- 사용자 제어 핸들러(.ascx): 웹 사용자 제어 페이지를 처리합니다.
- 웹 서비스 처리기(.asmx): 웹 서비스 페이지를 처리합니다.
- 추적 처리기(추적).axd): 추적 기능을 처리합니다.
사용자 정의 출력을 브라우저로 렌더링하는 사용자 정의 HTTP 핸들러를 만들 수 있습니다.ASP.NET의 HTTP 처리기에 대한 일반적인 시나리오는 다음과 같습니다.
- 동적으로 생성된 이미지(예: 이미지) 또는 크기가 조정된 사진을 제공합니다.
- RSS 형식 XML을 내보내는 RSS 피드
사용자는 다음을 구현합니다.IHttpHandler와 "" " "" " " " 를 생성합니다.IHttpAsyncHandler비동기 처리기를 만드는 인터페이스입니다.에서는 인페이를면구합니야다현해다음을을 .ProcessRequest 및 방법IsReusable소유물.
그ProcessRequest메서드는 요청에 대한 실제 처리를 처리하는 반면 부울은 처리합니다.IsReusable속성은 처리기를 재사용(성능 향상)하기 위해 풀링할 수 있는지 또는 각 요청에 대해 새 처리기가 필요한지 여부를 지정합니다.
안 안HttpHandler(또는)IHttpHandler는으로 콘텐츠 것입니다.는 기본적으로 콘텐츠 서비스를 담당하는 모든 것입니다.ASP.NET 페이지(aspx)는 핸들러의 한 유형입니다.
예를 들어 웹 서버 자체가 아닌 데이터베이스에서 이미지 등을 제공하거나 SOAP/WCF/etc가 아닌 간단한 POX 서비스를 작성하기 위해 직접 작성할 수 있습니다.
HttpHandler 예제,
ASP.NET 2.0의 HTTP 처리기
처리기는 브라우저의 요청을 처리하는 역할을 합니다.브라우저가 관리하는 요청은 파일 확장명으로 처리하거나 처리기를 직접 호출하여 처리합니다.들어오는 Http 요청을 처리하기 위한 낮은 수준의 요청 및 응답 API는 Asp의 Http 처리기입니다.Net. 모든 핸들러는 시스템에 위치한 IHTTPHandler 인터페이스를 구현합니다.웹 네임스페이스입니다.핸들러는 ISAPI(Internet Server Application Programming Interface) 확장과 다소 유사합니다.
IHTTPHandler 인터페이스를 구현하여 동기식 핸들러를 생성하고 IHTTPAsyncHandler 인터페이스를 구현하여 비동기식 핸들러를 생성합니다.인터페이스를 사용하려면 프로세스 요청 메서드 및 IsReusable 속성을 구현해야 합니다.ProcessRequest 메서드는 요청에 대한 실제 처리를 처리하는 반면 BooleanIsReusable 속성은 성능을 향상시키기 위해 핸들러를 다시 풀링할 수 있는지 또는 각 요청에 새 핸들러가 필요한지 여부를 지정합니다.
.ashx 파일 확장명은 사용자 지정 핸들러용으로 예약되어 있습니다.파일 이름 확장명이 .ashx인 사용자 지정 핸들러를 만들면 IIS 및 ASP.NET 내에 자동으로 등록됩니다.대체 파일 확장명을 사용하려면 IIS 및 ASP.NET 내에 확장명을 등록해야 합니다..ashx 이외의 확장자를 사용할 경우 한 핸들러에 여러 파일 확장자를 할당할 수 있다는 장점이 있습니다.
HTTP 핸들러 구성
구성 섹션 처리기는 들어오는 URL을 IHTtpHandler 또는 IHTtpHandlerFactory 클래스에 매핑하는 역할을 합니다.컴퓨터, 사이트 또는 응용 프로그램 수준에서 선언할 수 있습니다.하위 디렉터리는 이 설정을 상속합니다.관리자는 태그 지시문을 사용하여 섹션을 구성합니다. 지시문은 하향식 순차적으로 해석 및 처리됩니다.섹션 핸들러에 대해 다음 구문을 사용합니다.
HTTP 핸들러 만들기
HTTP 핸들러를 만들려면 IHTTPHandler 인터페이스를 구현해야 합니다.IHTtpHandler 인터페이스에는 voidProcessRequest(HttpContext);boolIsResuable{get;} 서명이 있는 메서드와 속성이 하나 있습니다.
를 하는 모든 System.Web.IHttpHandler인터페이스가 다음과 같습니다.HttpHandler그리고 이 클래스는 ASP.NET 사이트에 대한 요청에 대한 응답으로 프로세스로 실행됩니다.
가장 일반적인 처리기는 .aspx 파일을 처리하는 ASP.NET 페이지 처리기입니다.파일을 핸들러 emplemented .aspx 파일을 구현하는 클래스)를 합니다.System.Web.IHttpHandler인터페이스).
사용자 정의 출력을 브라우저로 렌더링하는 사용자 정의 HTTP 핸들러를 만들 수 있습니다.
일부 ASP.NET 기본 처리기는 다음과 같습니다.
- 페이지 핸들러(.aspx) – 웹 페이지를 처리합니다.
- 사용자 제어 핸들러(.ascx) – 웹 사용자 제어 페이지를 처리합니다.
- 웹 서비스 처리기(.asmx) – 웹 서비스 페이지를 처리합니다.
- 추적 처리기(추적).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은 웹 서비스 핸들러와 같은 다른 기본 제공 핸들러와 함께 제공됩니다..asmx files.
응용프로그램에서 파일 이름 확장명을 사용하여 식별할 수 있는 특수 처리를 원할 때 사용자 정의 HTTP 핸들러를 만들 수 있습니다.예를 들어, 다음 시나리오는 사용자 지정 HTTP 핸들러를 유용하게 사용할 수 있습니다.
RSS 피드 사이트에 대한 RSS 피드를 만들려면 RSS 형식 XML을 내보내는 처리기를 만들 수 있습니다.그런 다음 응용 프로그램의 .rss 확장자(예: 사용자 정의 핸들러)를 바인딩할 수 있습니다.사용자가 사이트에 .rss로 끝나는 요청을 보내면 ASP.NET이 처리기를 호출하여 요청을 처리합니다.
이미지 서버 웹 응용프로그램이 다양한 크기의 이미지를 제공하도록 하려면 사용자 정의 처리기를 작성하여 이미지 크기를 조정한 다음 처리기의 응답으로 사용자에게 다시 보낼 수 있습니다.
HTTP 처리기는 요청하는 사용자의 ID(알려진 경우), 응용프로그램 상태 및 세션 정보를 포함한 응용프로그램 컨텍스트에 액세스할 수 있습니다.HTTP 처리기가 요청되면 ASP.NET은 적절한 처리기에서 메서드를 호출합니다.핸들러의ProcessRequest메소드는 응답을 생성하여 요청 브라우저로 다시 전송합니다.페이지 요청과 마찬가지로 응답은 처리기 실행 후 발생하는 이벤트에 가입한 HTTP 모듈을 통과합니다.
언급URL : https://stackoverflow.com/questions/391130/what-is-an-httphandler-in-asp-net
'programing' 카테고리의 다른 글
| 박리된 애플리케이션의 주요 기능을 분해하는 방법은 무엇입니까? (0) | 2023.07.24 |
|---|---|
| 분기가 없는 Git 커밋 나열 및 삭제(Dangling?) (0) | 2023.07.19 |
| pip 버전 자체를 아는 방법 (0) | 2023.07.19 |
| 팬더의 merge()와 concat()의 차이 (0) | 2023.07.19 |
| T-SQL에서 비트 필드를 플립하는 방법은 무엇입니까? (0) | 2023.07.19 |