본문 바로가기

C#

SOAP 통신

728x90

SOAP (Simple Object Access Protocol)은 웹 서비스와 클라이언트 간의 메시지를 교환하는 데 사용되는 프로토콜입니다. XML 기반의 메시지 형식을 사용하여 네트워크를 통해 데이터를 송수신하며, HTTP, SMTP, TCP 등 다양한 전송 프로토콜을 사용할 수 있습니다. SOAP은 웹 서비스의 인터페이스를 정의하고 데이터 교환을 표준화하는 데 유용합니다.

SOAP 통신의 기본 개념

1. SOAP 메시지 구조

 

  • Envelope: SOAP 메시지의 최상위 요소로, 메시지가 SOAP 메시지임을 나타냅니다.
  • Header: (선택적) 메시지의 메타데이터를 포함합니다. 보안, 라우팅 정보 등.
  • Body: SOAP 메시지의 핵심 부분으로, 실제 데이터나 요청/응답 정보를 포함합니다.
  • Fault: (선택적) 오류 정보를 포함하는 요소로, 요청 처리 중 문제가 발생했을 때 사용됩니다.

2. SOAP 메시지 예시

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    <soap:Header>
        <!-- Optional header elements -->
    </soap:Header>
    <soap:Body>
        <m:GetStockPrice xmlns:m="http://www.example.org/stock">
            <m:StockName>IBM</m:StockName>
        </m:GetStockPrice>
    </soap:Body>
</soap:Envelope>

 

3. SOAP 요청과 응답

  • SOAP 요청: 클라이언트가 웹 서비스에 요청을 보내는 메시지입니다. 요청의 본문에는 웹 서비스에서 수행할 작업에 대한 정보가 포함됩니다.
  • SOAP 응답: 웹 서비스가 클라이언트의 요청에 대해 반환하는 메시지입니다. 응답의 본문에는 요청에 대한 결과나 오류 정보가 포함됩니다.

응답 예시:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    <soap:Header>
        <!-- Optional header elements -->
    </soap:Header>
    <soap:Body>
        <m:GetStockPriceResponse xmlns:m="http://www.example.org/stock">
            <m:Price>100.00</m:Price>
        </m:GetStockPriceResponse>
    </soap:Body>
</soap:Envelope>

SOAP 통신의 동작 과정

1. 클라이언트 생성:
클라이언트 애플리케이션에서 SOAP 요청 메시지를 작성합니다.

2. SOAP 요청 전송:
SOAP 요청 메시지를 웹 서비스의 엔드포인트(일반적으로 HTTP URL)를 통해 전송합니다.

3. 웹 서비스 처리:
웹 서비스가 SOAP 요청을 수신하고, 요청을 처리한 후 SOAP 응답 메시지를 생성합니다.

4. SOAP 응답 수신:
클라이언트가 웹 서비스로부터 SOAP 응답 메시지를 수신하고, 응답을 파싱하여 필요한 데이터를 추출합니다.

728x90