메시지 핸들러는 HTTP 요청을 수신하고 HTTPresponse를 반환하는 클래스입니다. 메시지 핸들러는 추상 HttpMessageHandler 클래스에서 파생됩니다. 메시지 핸들러는 HttpControllerDispatcher에 도달하기 전에 수신 요청을 처리, 편집 또는 거부할 수 있는 기회를 제공합니다.
메시지 처리기는 요청 처리 파이프라인에서 훨씬 더 일찍 실행되므로 Web API에서 교차 절단 문제를 구현하기에 좋은 위치입니다. MessageHandler는 파이프라인을 통한 HTTP 요청 및 응답 프로세스 옆에 있는 클래스 체인(시스템 정의 또는 정의)에 불과합니다.
예를 들어, 하나의 HTTP 요청이 HTTP 서버에 도착하면 이제 요청이 HandlerA로 전달되고 HandlerA에서 처리된 후 HandlerB 등으로 이동할 수 있습니다. 이제 여기의 장점은 비즈니스 요구 사항에 따라 각 처리기 내에서 특정 작업을 수행할 수 있다는 것입니다.
ASP.NET Web API Framework에는 두 가지 유형의 메시지 처리기를 사용할 수 있습니다. 다음과 같습니다.
- 서버측 HTTP 메시지 처리기
- 클라이언트 측 HTTP 메시지 처리기
서버측 메시지 핸들러
서버 측에서 Web API 파이프라인은 몇 가지 내장 메시지 핸들러를 사용합니다 -
- Http서버 호스트로부터 요청을 받습니다.
- HttpRoutingDispatcher 경로를 기반으로 요청을 발송합니다.
- HttpControllerDispatcher 요청을 Web API 컨트롤러로 보냅니다.
파이프라인에 사용자 지정 핸들러를 추가할 수 있습니다. 메시지 핸들러는 (controlleraction이 아닌) HTTP 메시지 수준에서 작동하는 교차 관심사에 적합합니다. 예를 들어, 메시지 핸들러는 -
- 요청 헤더를 읽거나 수정합니다.
- 응답에 응답 헤더를 추가합니다.
- 컨트롤러에 도달하기 전에 요청을 확인합니다.
클라이언트 측 HTTP 메시지 핸들러
클라이언트 측에서 HttpClient 클래스는 메시지 핸들러를 사용하여 요청을 처리합니다. 기본 핸들러는 HttpClientHandler입니다. , 네트워크를 통해 요청을 보내고 서버에서 응답을 받습니다. 사용자 지정 메시지 처리기를 클라이언트 파이프라인에 삽입할 수 있습니다.