HTTP 플로우에 대한 작업

이 주제는 HTTP 메시지 플로우를 사용하여 웹 서비스와 상호작용할 경우에 유용한 정보를 제공합니다. 후속 웹 서비스 시나리오 절과 함께 읽으면 유용합니다.

HTTPS
HTTPS 사용에 대한 도움말은 SSL 인증 구현을 참조하십시오.
응답에 대한 HTTP 상태 코드 설정
디폴트 HTTP 상태 코드는 양호를 의미하는 200입니다. 이 코드는 여러 방법으로 수정이 가능합니다.
  • 입력 또는 응답으로부터 디폴트 HTTP 헤더 생성 등록 정보를 선택할 경우 HTTPReply 노드가 전달될 상태 코드에 대해 HTTP 응답 헤더를 스캔합니다. 응답 헤더는 HTTPRequest 노드가 작성하며 웹 서비스에서 나오는 응답의 일부분으로써 제공되는 HTTP 헤더를 표시합니다. HTTPReply 노드는 상태 코드를 찾은 후 고유 상태 코드를 이 값에 설정합니다.
  • LocalEnvironment에서 Destination.HTTP.ReplyStatusCode 필드에 상태 코드를 설정할 수 있습니다. 이 경우, 설정한 값이 응답 헤더에서 검색한 설정을 대체합니다.

Compute 노드에서 특수 헤더에 응답 상태를 설정할 수도 있지만(기타 모든 설정을 대체하는 출력 메시지의 HTTPReplyHeader 섹션에 있는 X-Original-HTTP-Status-Code) 이 목적에는 LocalEnvironment 컨텐츠를 사용하는 것이 좋습니다.

LocalEnvironment.Destination.HTTP.RequestIdentifier 사용
HTTPInput 노드가 입력 요청 메시지를 수신할 경우 요청을 송신한 웹 서비스 클라이언트를 식별하는 고유 값으로 Destination.HTTP.RequestIdentifier LocalEnvironment 필드를 설정합니다. 이 값을 참조하여 해당되는 경우 다른 위치로 저장할 수 있습니다.

예를 들어, 기존 WebSphere MQ 응용프로그램과 상호작용하는 한 쌍의 메시지 플로우를 설계할 경우(브로커가 기존 웹 서비스를 호출함 참조) 이 값을 요청 플로우에 저장하고 올바른 클라이언트가 응답을 수신할 수 있도록 reply 플로우에서 복원할 수 있습니다. 이 경우 데이터를 변경해선 안되며 BLOB로써 데이터를 보유해야 합니다.

HTTPReply 노드는 LocalEnvironment에서 이 값을 추출하여 특정 클라이언트로 송신하도록 응답을 설정합니다.

HTTPInput 및 HTTPReply 노드 모두를 포함하는 메시지 플로우를 설계할 경우 값이 HTTPInput 노드에 의해 LocalEnvironment로 설정되지만 HTTPReply 노드는 이 값을 사용하지 않습니다. 따라서 해당 메시지 플로우에 동일한 플로우의 노드와 Compute 노드 모두가 포함될 경우 Compute 노드에 의해 입력 메시지에서 출력 메시지로 복사되는 메시지 트리의 구성요소를 지정할 때 LocalEnvironment 트리를 포함시킬 필요가 없습니다(Compute 모드 등록 정보).

동적으로 HTTPRequest 노드 URL 설정
HTTPRequest 노드에서 디폴트 웹 서비스 URL 등록 정보를 설정하여 웹 서비스 요청의 목적지 URL을 판별할 수 있습니다. 메시지 플로우 내에서 HTTPRequest 노드에 앞서 Compute 노드를 구성하여 등록 정보에 설정된 값을 대체할 수 있습니다. LocalEnvironment.Destination.HTTP.RequestURL에 URL 문자열을 저장하는 ESQL을 코딩하십시오. 이것은 HTTPRequest 노드에서 검색되며 노드 등록 정보 값 대신 사용됩니다.

Compute 노드에서 요청 메시지의 HTTPRequestHeader 섹션에 있는 특수 헤더 X-Original-HTTP-URL에 요청 URL을 설정할 수도 있지만(기타 모든 설정을 대체함) 이 경우에는 LocalEnvironment 컨텐츠를 사용하는 것이 좋습니다.

HTTPReply 노드에서 답장이나 응답으로부터 디폴트 HTTP 헤더 생성 설정
HTTPReply 노드 등록 정보 대화 상자에서 답장이나 응답으로부터 디폴트 HTTP 헤더 생성 선택란을 선택할 경우 이 노드에는 웹 서비스 클라이언트로 송신된 응답에 최소 헤더 세트가 포함됩니다. 또한 입력으로써 수신한 메시지 내의 HTTPResponseHeader에 존재하는 헤더도 포함됩니다.

컨텐츠가 올바르도록(입력 또는 응답으로부터 디폴트 HTTP 헤더 생성 선택란을 지웠더라도) HTTPReply 노드가 항상 Content-Length 헤더를 다시 씁니다.

기타 모든 헤더가 HTTPResponseHeader로부터 복사됩니다. 복사 후, Content-Type 헤더가 존재하지 않는다면 text/xml; charset=utf-8의 값과 함께 추가됩니다.

HTTPReplyHeader 섹션이 HTTPReply 노드가 수신한 메시지에 존재하고 HTTPReply 노드의 출력 터미널이 연결된 경우 HTTPReplyHeader 섹션이 변경 또는 추가된 값으로 갱신됩니다.

HTTPRequest 노드에 대한 입력으로부터 디폴트 HTTP 헤더 생성 설정
HTTPRequest 노드 등록 정보 대화 상자에서 입력으로부터 디폴트 HTTP 헤더 생성 선택란을 선택할 경우 노드에는 서버로 송신된 요청에 최소 세트의 헤더가 포함됩니다. 또한 노드에는 입력으로써 수신한 메시지 내의 HTTPInputHeader에 존재하는 헤더도 포함됩니다.

컨텐츠가 올바르도록(입력으로부터 디폴트 HTTP 헤더 생성 선택란을 지웠더라도) HTTPRequest 노드가 항상 Content-Length 헤더를 다시 씁니다.

다음을 제외한 모든 헤더를 HTTPInputHeader로부터 복사합니다.

  • 요청 URL 또는 메시지의 들어오는 HTTPRequestHeader 섹션에 따라 설정되는 호스트 헤더
  • 모든 경우에 다시 쓰는 Content-Length 헤더

들어오는 HTTPRequest 또는 HTTPInput 헤더에 없다면 여러 헤더가 디폴트 값으로 생성됩니다.

  • ""로 설정된 SOAPAction
  • 이 메시지에 사용할 요청 URL에 따라 설정되는 호스트. 이것은 값이 될 수 있습니다.
  • text/xml; charset=utf-8로 설정되는 Content-Type

노드가 수신한 메시지의 HTTPRequestHeader에 존재하는 헤더는 동일한 메시지의 HTTPInputHeader에도 존재하는 동일한 이름의 헤더를 대체합니다. HTTPRequestHeader가 수신된 메시지에 존재하는 경우 HTTPRequestHeader가 변경 또는 추가된 값으로 갱신됩니다.

관련 개념
WebSphere MQ Web Services Transport
WSDL
관련 작업
메시지 플로우 작성
전개
전개 결과 점검
관련 참조
HTTPInput 노드
HTTPReply 노드
HTTPRequest 노드
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2005 마지막 갱신 날짜: 11/08/2005
ac20450_