C++용 웹 서비스 클라이언트는 메시지 구성요소를 사용자 정의하거나 확장하는 데 사용할 수 있도록 핸들러의 사용을 지원합니다. 핸들러는 요청 메시지가 전송되기 직전이나 응답 메시지가 수신된 직후에 호출되며 서비스 특정 또는 글로벌이 될 수 잇습니다.
C++용 웹 서비스 클라이언트는 두 가지 유형의 기본 핸들러를 지원합니다.
코딩 Perspective에서 볼 때 서비스와 글로벌 핸들러에는 차이가 없습니다. 유일한 차이점은 WSDD 파일 내에서 지정되는 위치입니다. 서비스 핸들러는 특정 서비스/포트 조합과 연관되어 적합한 목적지를 가진 SOAP 메시지가 호출될 때에만 호출됩니다. 글로벌 핸들러는 메시지 목적지와 상관 없이 항상 호출됩니다. 핸들러 호출 규칙은 WSDD 파일의 컨텐츠에 의해 제공되며 WSDD 파일의 핸들러 정의에 설명되어 있습니다.
pivot 지점은 메시지를 쓰거나 연결에서 읽어오는 지점에 부여되는 이름입니다. 연결이라는 용어는 웹에서 메시지를 물리적으로 전송 또는 수신하는 모든 기본 구성요소를 의미합니다. 전송되는 요청 메시지에서 작업하는 핸들러는 pre-pivot 핸들러이며, 반대로 수신 후 응답 메시지에서 작업하는 핸들러는 post-pivot 핸들러입니다.
요청 메시지 준비 시 핸들러는 메시지 구성 체인의 마지막 링크이며, 그림 1에서 표시된 바와 같이 메시지를 전송하기 직전에 호출됩니다.
응답 메시지 준비 시 핸들러는 메시지 구성 해제 체인의 첫 링크이며, 그림 2에서 표시된 바와 같이 메시지를 수신한 직후에 호출됩니다.