Share via


HTTP 수신 어댑터

HTTP 수신 어댑터에 대한 수신 위치는 BizTalk Server 관리 콘솔을 통해 구성되는 고유 URL입니다.

클라이언트로부터의 비동기 전송 또는 동기 전송에 대해 HTTP 수신 어댑터를 구성할 수 있습니다. 비동기 전송은 단방향 전송이며, 동기 전송은 양방향 또는 요청-응답 전송입니다.

들어오는 요청의 인증 및 권한 부여에 IIS 보안을 사용할 수 있습니다.

HTTP GET 및 HTTP POST 요청

HTTP 수신 어댑터는 HTTP POST 요청 또는 HTTP GET 요청을 통해 두 가지 방법으로 메시지를 받을 수 있습니다.

HTTP 수신 어댑터가 HTTP POST 요청에서 메시지를 가져오면 다음 이벤트 시퀀스가 발생합니다.

  1. BizTalk Server에 구성된 URL의 수신 위치에서 새 메시지를 받습니다.

  2. 메시지가 서버에 전송될 있도록 수신 어댑터가 BizTalk 메시지 개체를 만듭니다.

  3. 수신 어댑터는 본문 부분인 한 부분만 있는 BizTalk Message 개체를 만듭니다.

  4. 메시지를 읽고 성공적으로 서버에 전송한 후에 HTTP 수신 어댑터는 요청이 수락되었음을 나타내는 HTTP 코드 202를 클라이언트로 다시 보냅니다.

    또는 HTTP 수신 어댑터가 HTTP 응답에서 메시지 상관 관계 토큰을 보낼 수 있습니다. 이 상관 관계 토큰은 BizTalk Server 내에서 메시지를 나타냅니다. HTTP 수신 위치가 요청-응답 포트 내에 있는 경우 어댑터는 응답 메시지와 함께 성공 코드 200을 반환합니다.

    HTTP 수신 어댑터가 HTTP GET 요청의 메시지를 처리할 경우 수신 어댑터는 BizTalk 메시지 개체를 만들어 HTTP GET 요청의 디코딩된 쿼리 문자열을 BizTalk 메시지 본문 부분에 배치합니다. HTTP 어댑터는 다음 알고리즘을 사용하여 BizTalk 메시지 본문에 배치된 쿼리 문자열을 선택합니다.

  • HTTP 수신 어댑터가 HTTP GET 요청을 받으면 물음표(?) 기호를 구분 기호로 사용하여 들어오는 URI 문자열을 두 부분으로 분할합니다.

  • URI 문자열의 첫 번째 부분인 물음표 구분 기호 앞의 부분은 메시지 컨텍스트의 InboundTransportLocation 속성에 복사됩니다. InboundTransportLocation 속성은 BizTalk Server 메시지를 받은 위치를 고유하게 식별합니다. 이 엔진은 이 속성을 사용하여 메시지에 대해 실행할 수신 위치를 확인합니다.

  • HTTP 어댑터는 URI 문자열의 나머지 부분인 물음표 구분 기호 뒤에 있는 부분을 사용하여 디코딩하고 BizTalk 메시지 본문 부분에 복사합니다.

  • HTTP 수신 어댑터에서 빈 HTTP GET 또는 HTTP POST 작업을 수신하면 해당 작업은 거부됩니다.

HTTP 수신 어댑터의 GET 요청 처리

다음은 HTTP 수신 어댑터가 HTTP GET 요청이 보낸 메시지를 처리하는 방법에 대한 예입니다. 이 예에서는 HTTP 수신 어댑터가 다음 두 가지 수신 위치를 사용하여 구성된다고 가정합니다.

/vroot/BTSHTTPReceive.dll  
/vroot/BTSHTTPReceive.dll?LocationID=1  
  1. 클라이언트에 대해 지정된 HTTP GET 요청은 다음과 같습니다.

    http://servername/vroot/BTSHTTPReceive.dll?LocationID=1  
    

    HTTP 수신 어댑터에서 수행한 작업은 다음과 같습니다.

    메시지 컨텍스트 에서 InboundTransportLocation 속성을 /vroot/BTSHTTPReceive.dll, BizTalk Message 개체 본문 부분을 LocationID=1과 동일하게 설정합니다.

  2. 클라이언트에 대해 지정된 HTTP GET 요청은 다음과 같습니다.

    http://servername/vroot/BTSHTTPReceive.dll?LocationID=1&MyParam=My%20Value  
    

    HTTP 수신 어댑터에서 수행한 작업은 다음과 같습니다.

    InboundTransportLocation 속성을 /vroot/BTSHTTPReceive.dll 같고 BizTalk Message 개체 본문 부분은 LocationID=1&MyParam=My Value와 같게 설정합니다.

  3. 클라이언트에 대해 지정된 HTTP GET 요청은 다음과 같습니다.

    http://servername/vroot/BTSHTTPReceive.dll  
    

    HTTP 수신 어댑터에서 수행한 작업은 다음과 같습니다.

    HTTP GET 요청의 형식이 잘못되어 요청을 거부합니다.

HTTP 수신 어댑터에 대한 일괄 처리 지원

HTTP 수신 어댑터는 일괄 처리로 메시지를 서버로 전송합니다. 서버로 메시지를 전송하는 데 사용되는 일괄 처리 크기는 HTTP 어댑터 수신 핸들러에서 구성할 수 있습니다.

실패한 요청을 일시 중단하기 위한 HTTP 수신 어댑터 지원

BizTalk Server HTTP 수신 어댑터에는 수신 파이프라인 오류, 매핑 실패 또는 라우팅 실패로 인해 인바운드 처리에 실패하는 경우 HTTP 요청으로 수행되는 작업을 제어하기 위한 구성 설정인 실패한 요청 일시 중단이 있습니다. 이 설정의 가능한 값은 두 가지입니다.

  • 틀렸습니다. 이 값은 기본 설정입니다. HTTP 수신 어댑터는 수신 파이프라인 오류, 매핑 오류 또는 라우팅 오류로 인해 인바운드 처리가 실패한다는 메시지를 삭제합니다. 또한 오류 상태 코드 401 또는 500이 클라이언트로 전송됩니다.

  • 맞습니다. HTTP 수신 어댑터는 수신 파이프라인 오류, 매핑 오류 또는 라우팅 오류로 인해 인바운드 처리가 실패한다는 메시지를 일시 중단합니다. 단방향 수신 포트의 경우 수락된 상태 코드 202가 클라이언트로 전송됩니다. 양방향 수신 포트의 경우 오류 상태 코드 500이 클라이언트로 전송됩니다.

HTTP 수신 어댑터에 대한 청크 분할 인코딩 지원

HTTP 수신 어댑터는 청크 분할 인코딩된 본문 메시지가 포함된 HTTP 요청을 수락합니다. 본문 크기가 4KB보다 클 경우 수신 어댑터는 청크 분할 인코딩을 사용하여 응답 메시지를 보냅니다. HTTP 어댑터 구성 및 튜닝 매개 변수에 설명된 DWORD 레지스트리 항목을 설정하여 청크 인코딩을 해제할 수 있습니다.

HTTP 수신 어댑터의 클라이언트 인증서

HTTP 수신 위치에서 클라이언트 인증서가 포함된 보안 연결이 사용될 때마다 HTTP 수신 어댑터는 Microsoft IIS(인터넷 정보 서비스)에서 클라이언트 인증서 손 도장(Thumbprint)을 가져와 해당 위치에서 HTTPS를 통해 수신된 모든 메시지의 메시지 컨텍스트에 추가합니다. HTTP 수신 어댑터는 다음 시스템 속성을 설정합니다.

SourcePartyEvidenceQualifier = "Certificate"  
SourcePartyEvidence = <certificate thumbprint>  

HTTP 수신 어댑터에서 반환된 상태 코드

다음 목록에는 HTTP 수신 어댑터에서 반환된 상태 코드가 포함되어 있습니다.

  • 200 정상입니다. 어댑터가 요청 메시지를 성공적으로 처리했으며 응답을 생성했습니다. 어댑터는 HTTP 응답-요청 포트에서 HTTP 응답에 이 상태 코드를 반환합니다.

  • 202 메시지 수락. 어댑터가 서버로 메시지를 성공적으로 전송했거나 단방향 요청이 일시 중단됩니다. 어댑터는 단방향 HTTP 수신 포트에서 HTTP 응답에 이 상태 코드를 반환합니다.

  • 401 액세스 거부. 인증이 필요한 수신 포트에서 HTTP 요청을 받았으며 해당 메시지에 대한 보안 검사가 실패했습니다. 예를 들어 파티가 해결되지 않았거나 메시지 암호가 해독되지 않았습니다.

  • 500 내부 서버 오류. 일반 오류가 발생하여 HTTP 요청을 처리하지 못했습니다. 양방향 수신 포트에 대해 실패한 요청 일시 중단 구성 설정이 True로 설정되지 않는 한 메시지는 BizTalk Server 의해 일시 중단되지 않습니다.

참고 항목

HTTP 어댑터