처리 중 오류가 발생하면 SOAP 메시지에 대한 응답은 메시지 body의 SOAP 오류 요소이며 오류는 SOAP 메시지의 보낸 사람에게 반환됩니다.
SOAP 오류 메커니즘은 미리 정의된 코드, 설명 및 오류를 생성한 SOAP 프로세서의 주소를 포함하여 오류에 대한 특정 정보를 반환합니다.
주의 사항
·SOAP 메시지는 하나의 오류 블록만 전달할 수 있습니다.
·결함은 SOAP 메시지의 선택적 부분입니다.
·HTTP 바인딩의 경우 성공적인 응답은 200~299 범위의 상태 코드에 연결됩니다.
·SOAP 결함은 500~599 범위의 상태 코드와 연결됩니다.
결함의 하위 요소
SOAP 오류에는 다음과 같은 하위 요소가 있습니다.
Sr.No
하위 요소 및 설명
1
<faultCode> 오류 클래스를 나타내는 데 사용되는 텍스트 코드입니다. 사전 정의된 오류 코드 목록은 다음 표를 참조하십시오.
2
<faultString> 오류를 설명하는 문자 메시지입니다.
3
<faultActor> 누가 오류를 일으켰는지 나타내는 텍스트 문자열입니다. SOAP 메시지가 SOAP 메시지 경로의 여러 노드를 통해 이동하고 클라이언트가 오류를 일으킨 노드를 알아야 하는 경우에 유용합니다. 최종 목적지로 작동하지 않는 노드는 faultActor요소를 포함해야 합니다.
4
<detail> 응용 프로그램별 오류 메시지를 전달하는 데 사용되는 요소입니다. 상세 요소는 상세 항목이라는 하위 요소를 포함할 수 있습니다.
SOAP 오류 코드
아래에 정의된 faultCode 값은 오류를 설명하는 동안 faultcode요소에 사용해야 합니다.
Sr.No
오류 및 설명
1
SOAP-ENV:VersionMismatch SOAP envelope 요소에 대해 잘못된 네임스페이스를 찾았습니다.
구조체에는 여러 값이 포함되지만 각 요소는 고유한 접근자 요소로 지정됩니다. 예를 들어, 제품 카탈로그 내의 항목을 고려하십시오. 이 경우 구조체에는 제품 SKU, 제품 이름, 설명 및 가격이 포함될 수 있습니다. 다음은 그러한 구조체가 SOAP 메시지에서 표현되는 방법입니다.
<return xmlns:ns2 = "urn:examples" xsi:type = "ns2:product"> <name xsi:type = "xsd:string">Red Hat Linux</name> <price xsi:type = "xsd:double">54.99</price> <description xsi:type = "xsd:string"> Red Hat Linux Operating System </description> <SKU xsi:type = "xsd:string">A358185</SKU> </return> </ns1:getProductResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
참고 - SOAP 코드를 작성하는 동안 적절한 들여쓰기에 주의하십시오. 구조체의 각 요소는 고유한 접근자 이름으로 지정됩니다. 예를 들어 위의 메시지에는 이름, 가격, 설명 및 SKU의 네 가지 접근 요소가 포함됩니다. 각 요소는 고유한 데이터 유형을 가질 수 있습니다. 예를 들어 name은 문자열로 지정되고 price는 double로 지정됩니다.
SOAP - 전송
SOAP는 전송 프로토콜에 연결되어 있지 않습니다. SOAP는 SMTP, FTP, IBM MQSeries 또는 MSMQ(Microsoft Message Queuing)를 통해 전송할 수 있습니다.
SOAP 사양에는 HTTP에 대한 세부 정보만 포함됩니다. HTTP는 가장 널리 사용되는 SOAP 전송 프로토콜로 남아 있습니다.
HTTP를 통한 SOAP
논리적으로 SOAP 요청은 HTTP 요청을 통해 전송되고 SOAP 응답은 HTTP 응답의 내용 내에서 반환됩니다. SOAP 요청은 HTTP GET을 통해 보낼 수 있지만 사양에는 HTTP POST에 대한 세부 정보만 포함되어 있습니다.
또한 콘텐츠 유형을 text/xml로 설정하려면 HTTP 요청과 응답이 모두 필요합니다.
SOAP 사양은 클라이언트가SOAPAction 헤더를 제공해야 한다고 요구 하지만 SOAPAction 헤더의 실제 값은 SOAP 서버 구현에 따라 다릅니다.
예를 들어, XMethods에서 호스팅하는 AltaVista BabelFish 번역 서비스에 액세스하려면 다음을 SOAPAction 헤더로 지정해야 합니다.
urn:xmethodsBabelFish#BabelFish
서버에 전체 SOAPAction 헤더가 필요하지 않더라도 클라이언트는 빈 문자열("") 또는 null 값을 지정해야 합니다. 예를 들어 -
SOAPAction: ""
SOAPAction:
다음은 HTTP를 통해 XMethods Babelfish 번역 서비스로 전송된 샘플 요청입니다.
W3C는 또한 핵심 SOAP 사양에서 분리되는 "첨부 파일이 있는 SOAP 메시지"에 대한 제출을 호스팅합니다. 이 사양을 사용하면 SOAP 메시지에 이미지 및 사운드 파일과 같은 이진 첨부 파일이 포함될 수 있습니다. 자세한 내용은http://www.w3.org/TR/SOAP-attachments에서 W3C 참고 사항을 참조하십시오.
·SOAP를 사용하면 클라이언트 응용 프로그램이 원격 서비스에 쉽게 연결하고 원격 메서드를 호출할 수 있습니다.
SOAP - 메시지 구조
SOAP 메시지는 다음 요소를 포함하는 일반 XML 문서입니다.
· Envelope - 메시지의 시작과 끝을 정의합니다. 필수 요소입니다.
·Header - 중간 지점이나 궁극적인 끝 지점에서 메시지 처리에 사용되는 메시지의 선택적 속성을 포함합니다. 선택적 요소입니다.
·Body - 전송되는 메시지를 구성하는 XML 데이터를 포함합니다. 필수 요소입니다.
·Fault - 메시지를 처리하는 동안 발생하는 오류에 대한 정보를 제공하는 선택적 Fault 요소입니다.
이러한 모든 요소는 SOAP envolope의 기본 네임스페이스( http://www.w3.org/2001/12/soap-envelope )에 선언되어 있으며 SOAP 인코딩 및 데이터 유형의 기본 네임스페이스는 다음과 같습니다. http://www.w3.org/2001/12/soap-encoding
참고 - 이 모든 사양은 변경될 수 있습니다. 따라서 W3 웹사이트에서 제공되는 최신 사양으로 계속 업데이트해야합니다.
SOAP envelope는 메시지의 시작과 끝을 나타내므로 수신자는 전체 메시지가 언제 수신되었는지 알 수 있습니다. SOAP envelope는 메시지 수신을 완료하고 처리할 준비가 된 시점을 아는 문제를 해결합니다. 따라서 SOAP envelope는 기본적으로 패키징 메커니즘입니다.
주의 사항
·모든 SOAP 메시지에는 root Envelope 요소가 있습니다.
·envelope는 SOAP 메시지의 필수 부분입니다.
·모든 Envelope 요소는 정확히 하나의 Body 요소를 포함해야 합니다.
·Envelope에 Header 요소가 포함되어 있는 경우에는 하나만 포함해야 하며, Body 앞에 Envelope의 첫 번째 자식으로 나타나야 합니다.
·SOAP 버전이 변경되면 envelope가 변경됩니다.
·SOAP envelope는ENV네임스페이스 접두사와 Envelope요소를 사용하여 지정됩니다.
·선택적 SOAP 인코딩은 또한 네임스페이스 이름과 선택적encodingStyle요소를 사용하여 지정되며, 이는 SOAP 이외의 인코딩 스타일을 가리킬 수도 있습니다.
·v1.1 호환 SOAP 프로세서는 v1.2 envelope 이름 공간이 포함된 메시지를 수신하면 오류를 생성합니다.
·v1.2 호환 SOAP 프로세서는 v1.2 envelope 네임스페이스가 포함되지 않은 메시지를 수신하는 경우VersionMismatch 오류를 생성합니다.
다음 예에서는 서버로 메시지를 보내는 HTTP POST 작업 내에서 SOAP 메시지를 사용하는 방법을 보여줍니다. envelope 스키마 정의 및 인코딩 규칙의 스키마 정의에 대한 네임스페이스를 보여줍니다. HTTP헤더의OrderEntry 참조는 tutorialspoint.com 웹 사이트에서 호출할 프로그램의 이름입니다.
선택적 Header 요소는 추가 응용 프로그램 수준 요구 사항을 지정하기 위한 유연한 프레임워크를 제공합니다. 예를 들어 Header 요소를 사용하여 암호로 보호된 서비스에 대한 디지털 서명을 지정할 수 있습니다. 마찬가지로, Envelope SOAP 서비스에 대한 계정 번호를 지정하는데 사용할 수 있습니다.
주의 사항
·SOAP 메시지의 선택적 부분입니다.
·헤더 요소는 여러 번 나타날 수 있습니다.
·헤더는 새로운 기능을 추가하기 위한 것입니다.
·SOAP 헤더에는 네임스페이스에 정의된 헤더 항목이 포함되어 있습니다.
·헤더는 SOAP envelope의 첫 번째 직계 자식 요소로 인코딩됩니다.
·여러 헤더가 정의되면 SOAP 헤더의 모든 직계 자식 요소가 SOAP 헤더 블록으로 해석됩니다.
SOAP 헤더 속성
SOAP 헤더는 다음과 같은 두 가지 속성을 가질 수 있습니다.
Actor 속성
SOAP 프로토콜은 메시지 경로를 SOAP 서비스 노드 목록으로 정의합니다. 이러한 중간 노드 각각은 일부 처리를 수행한 다음 메시지를 체인의 다음 노드로 전달할 수 있습니다. Actor 속성을 설정함으로써 클라이언트는 SOAP 헤더의 수신자를 지정할 수 있습니다.
MustUnderstand 속성
헤더 요소가 선택 사항인지 필수 항목인지 나타냅니다. true로 설정하면 수신자는 정의된 의미 체계에 따라 헤더 속성을 이해하고 처리하거나 오류를 반환해야 합니다.
위의 예는 컴퓨터 세트의 견적을 요청합니다. 위의 m:GetQuotation 및 Item 요소는 응용 프로그램별 요소입니다. SOAP 표준의 일부가 아닙니다.
다음은 위의 쿼리에 대한 응답입니다.
<?xml version = "1.0"?> <SOAP-ENV:Envelope> ........ <SOAP-ENV:Body> <m:GetQuotationResponse xmlns:m = "http://www.tp.com/Quotation"> <m:Quotation>This is Qutation</m:Quotation> </m:GetQuotationResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
일반적으로 응용 프로그램은 요청 및 응답 요소와 관련된 의미 체계를 포함하는 스키마도 정의합니다.
견적서비스는애플리케이션 서버에서 실행되는 EJB를 사용하여 구현될 수 있습니다. 그렇다면 SOAP 프로세서는GetQuotationResponse서비스의 EJB 구현 안팎으로 매개변수로 본문 정보를 매핑해야 합니다. SOAP 프로세서는 본문 정보를 .NET 개체, CORBA 개체, COBOL 프로그램 등에 매핑할 수도 있습니다.
SOAP(Simple Object Access Protocol)는 응용 프로그램의 분산 요소가 통신할 수 있도록 하는 메시지 프로토콜입니다. SOAP는 웹 관련HTTP (Hypertext Transfer Protocol)를 비롯한 다양한 표준프로토콜을 통해 수행될 수 있습니다.
SOAP는 프로그래밍 언어가 다른 응용 프로그램의 중간 언어로 개발되어 이러한 응용 프로그램이 인터넷을 통해 서로 통신할 수 있도록 합니다. SOAP는 유연하고 독립적이므로 개발자가기능과 기능을 추가하는 동시에 다양한 언어로 SOAP API (응용 프로그래밍 인터페이스)를 작성할 수 있습니다.
SOAP는 일반적으로 XML (Extensible Markup Language)을 사용하여 웹 API를 만드는 데 사용되는 경량 프로토콜입니다. 인터넷, HTTP, SMTP(Simple Mail Transfer Protocol) 및 전송 제어 프로토콜을 통한 광범위한 통신 프로토콜을 지원합니다 . SOAP 접근 방식은 SOAP 메시지가 처리되는 방법, 포함된 기능 및 모듈, 지원되는 통신 프로토콜 및 SOAP 메시지 구성을 정의합니다. SOAP는 XML 정보 세트를 메시지 형식으로 사용하고 메시지 전송 및 협상을 위해 HTTP와 같은 응용 프로그램 계층 프로토콜에 의존합니다.
애플리케이션 간의 데이터 교환은 오늘날의 네트워크 환경에서 매우 중요합니다. 그러나 이러한 이기종 애플리케이션 간의 데이터 교환은 복잡할 것입니다. 이 데이터 교환을 수행하기 위한 코드의 복잡성도 마찬가지입니다.
이러한 복잡성을 해결하는 데 사용되는 방법 중 하나는 응용 프로그램 간에 데이터를 교환하기 위한 중간 언어로 XML(Extensible Markup Language)을 사용하는 것입니다.
모든 프로그래밍 언어는 XML 마크업 언어를 이해할 수 있습니다. 따라서 XML은 데이터 교환의 기본 매체로 사용되었습니다. 그러나 데이터 교환을 위한 모든 프로그래밍 언어에서 XML 사용에 대한 표준 사양은 없습니다. 그것이 SOAP 소프트웨어가 등장하는 곳입니다.
SOAP는 HTTP를 통해 XML과 함께 작동하도록 설계되었으며 모든 응용 프로그램에서 사용할 수 있는 일종의 사양을 가지고 있습니다. SOAP 프로토콜에 대한 자세한 내용은 다음 장에서 살펴보겠습니다.
SOAP의 장점
SOAP는 응용 프로그램 간의 데이터 교환에 사용되는 프로토콜입니다. 다음은 SOAP가 사용되는 이유에 대한 몇 가지입니다.
SOAP 기반 웹 서비스를 개발할 때 웹 서비스가 클라이언트 응용 프로그램과 통신하는 데 사용할 수 있는 일부 언어가 필요합니다. SOAP는 이러한 목적을 달성하기 위해 개발된 완벽한 매체입니다. 이 프로토콜은 모든 웹 표준의 관리 기관인 W3C 컨소시엄에서도 권장합니다.
SOAP는 응용 프로그램 간의 데이터 교환에 사용되는 경량 프로토콜입니다. SOAP 프로그래밍은 그 자체가 경량 데이터 교환 언어인 XML 언어를 기반으로 하기 때문에 SOAP도 같은 범주에 속하는 프로토콜입니다.
SOAP는 플랫폼에 독립적으로 설계되었으며 운영 체제에도 독립적으로 설계되었습니다. 따라서 SOAP 프로토콜은 Windows 및 Linux플랫폼모두에서 모든 프로그래밍 언어 기반 응용 프로그램을 작동할 수 있습니다.
HTTP 프로토콜에서 작동합니다. SOAP는 모든 웹 응용 프로그램에서 사용하는 기본 프로토콜인 HTTP 프로토콜에서 작동합니다. 따라서 World Wide Web에서 작동하기 위해 SOAP 프로토콜에 구축된 웹 서비스를 실행하는 데 필요한 일종의 사용자 정의가 없습니다.
SOAP 빌딩 블록 및 메시지 구조 예
Simple Object Access Protocol은 사양으로 웹 서비스 및 클라이언트 응용 프로그램에 전송되는 SOAP 메시지를 정의합니다. SOAP 메시지는 다음 세 가지 기본 빌딩 블록으로 구성된 XML 문서입니다.
1.SOAP envelop는 메시지의 모든 데이터를 캡슐화하고 XML 문서를 SOAP 메시지로 식별합니다.
2.Header요소는 SOAP 메시지에 대한 추가 정보를 포함합니다. 이 정보는 예를 들어 호출 애플리케이션에서 사용하는 인증 자격 증명일 수 있습니다.
3.Body요소에는 웹 서비스에서 호출 응용 프로그램으로 보내야 하는 실제 메시지의 세부 정보가 포함됩니다. 이 데이터에는 통화 및 응답 정보가 포함됩니다.
오류 메시지는 선택적 네 번째 빌딩 블록입니다. SOAP 오류가 생성되면 HTTP 500 오류로 반환됩니다. 오류 메시지에는 오류 코드, 문자열, 행위자 및 세부 정보가 포함됩니다.
아래의 간단한 SOAP 메시지의 예를 살펴보고 요소가 실제로 수행하는 작업을 살펴보겠습니다.
SOAP 메시지 구조
위의 SOAP 메시지에서 볼 수 있듯이 SOAP 메시지의 첫 번째 부분은 전체 SOAP 메시지를 캡슐화하는 데 사용되는 봉투 요소입니다.
다음 요소는 실제 메시지의 세부사항을 포함하는 SOAP 본문입니다.
우리 메시지에는 "Guru99WebService"라는 이름의 웹 서비스가 포함되어 있습니다.
"Guru99Webservice"는 'int' 유형의 매개변수를 허용하며 이름은 TutorialID입니다.
이제 위의 SOAP 메시지가 웹 서비스와 클라이언트 응용 프로그램 간에 전달됩니다.
위의 정보가 클라이언트 애플리케이션에 얼마나 유용한지 알 수 있습니다. SOAP 메시지는 클라이언트 애플리케이션에 웹 서비스의 이름이 무엇인지, 웹 서비스가 예상하는 매개변수와 웹 서비스에서 사용하는 각 매개변수의 유형을 알려줍니다.
SOAP는 어떻게 작동합니까?
SOAP 요청은 응답을 생성하고 처리하기 쉽습니다. 먼저클라이언트가 XML 문서를 사용하여 서비스 요청을 생성합니다. 다음으로 SOAP 클라이언트는 XML 문서를 SOAP 서버로 보냅니다. 서버가 SOAP 메시지를 수신하면 요청된 서버 측 애플리케이션에 서비스 호출로 메시지를 보냅니다. 클라이언트에 대한 요청된 매개변수, 반환 값 및 데이터가 포함된 응답은 먼저 SOAP 요청 핸들러에 반환된 다음 요청 클라이언트에 반환됩니다. SOAP 요청과 응답은 모두HTTPS (Hypertext Transfer Protocol Secure) 또는 HTTP와 같은 유사한 프로토콜을 사용하여 전송됩니다.
SOAP 장점과 단점
SOAP는 서비스 지향 아키텍처( SOA ) 및웹 서비스사양의 필수적인 부분입니다.
SOAP의 장점은 다음과 같습니다.
·플랫폼 및 운영 체제에 독립적입니다. SOAP는 다양한 프로토콜을 통해 수행될 수 있으므로 Windows와 Linux 모두에서 서로 다른 프로그래밍 언어를 사용하는 응용 프로그램 간의 통신이 가능합니다.
·HTTP 프로토콜에서 작동합니다. SOAP는 다양한 프로토콜과 함께 작동하지만 HTTP는 웹 응용 프로그램에서 사용하는 기본 프로토콜입니다.
·다른 네트워크 및 보안 장치를 통해 전송할 수 있습니다. SOAP는 다른 프로토콜에 특별한 조정이 필요할 수 있는방화벽을 통해 쉽게 전달할 수 있습니다.
그러나 다음과 같은 단점이 있습니다.
·참조로 데이터를 전달하는 조항이 없습니다. 동일한 개체의 여러 복사본이 동시에 전달되는 경우 동기화 문제가 발생할 수 있습니다.
·속도. SOAP의 데이터 구조는 XML을 기반으로 합니다. XML은 대부분 사람이 읽을 수 있으므로 SOAP 메시지를 상당히 쉽게 이해할 수 있습니다. 그러나 이것은 또한 바이너리 데이터를 수용할 CORBA(Common Object Request Broker Architecture) 및RPC (원격 프로시저 호출) 프로토콜에 비해 메시지를 상대적으로 크게 만듭니다. 이 때문에 CORBA와 RPC가 더 빠릅니다.
·다른 방법만큼 유연하지 않습니다. SOAP는 유연하지만 RESTful 아키텍처와 같은 새로운 방법은 XML, JavaScript Object Notation , YAML또는 필요한 모든 파서를 사용하므로 SOAP보다 유연합니다.
SOAP API
SOAP는 웹 서비스 또는 SOA 프레임워크의 컨텍스트에서 거의 항상 사용되는 프로토콜입니다. 따라서 해당 API는 일반적으로 SOA에 대한 상위 수준 인터페이스에 의해 숨겨집니다. SOA API 미들웨어도구는 거의 모든 최신 프로그래밍 언어에 사용할 수 있으며 Microsoft는 다양한 .NET SOAP 및 SOA 도구를 제공합니다.
SOAP 대 REST
SOAP는 보안 및 제어를 잃지 않으면서 기존의 모놀리식 애플리케이션을 다중 구성 요소의 분산 형태로 분해하도록 설계되었습니다. 이와 대조적으로REST (REpresentational State Transfer)는 HTTP 프로토콜과 웹 서버가 클라이언트를 지원하는 방식을 기반으로 하는 분산 컴퓨팅 상호 작용의 모델입니다. REST over HTTP는 거의 항상 최신마이크로서비스개발 및 통신의 기초입니다. RESTful API는 GET, PUT, POST 및 DELETE 데이터에 대한 HTTP 요청을 사용합니다.
REST over HTTP는 간단하고 유연하며 가벼우며 정보를 교환하는 방법 이상을 제공합니다. SOAP는 HTTP에서도 사용할 수 있지만 웹 서비스 및 SOA 프레임워크와 같은 복잡한 분산 컴퓨팅 도구 세트의 요소와 애플리케이션 구성 요소를 연결하며 이는 전체 서비스 지향 프레임워크의 일부를 형성합니다.
단순 개체 액세스 프로토콜의 미래
SOAP는 서비스 지향 아키텍처에서 웹 서비스를 연결하는 데 널리 사용되는 최초의 프로토콜입니다. 오늘날 분산 애플리케이션의 현대적인 개발은 주로 RESTful 원칙을 기반으로 합니다. SOAP는 거의 항상레거시 플랫폼으로제한 됩니다. SOAP가 여전히 사용되는 영역 중 하나는 온라인 트랜잭션을 처리하는 응용 프로그램입니다. 이는 더 엄격하고 프로토콜 기반의 API 스타일이기 때문입니다.
SOAP 통신 모델
SOAP에 의한 모든 통신은 HTTP 프로토콜을 통해 이루어집니다. SOAP 이전에는 많은 웹 서비스가 통신을 위해 표준 RPC(원격 프로시저 호출) 스타일을 사용했습니다. 이것은 가장 단순한 형태의 의사소통이지만 많은 한계가 있었습니다.
이제 이 SOAP API 자습서에서 이 통신이 어떻게 작동하는지 보기 위해 아래 다이어그램을 살펴보겠습니다. 이 예에서 서버가 다음과 같이 2가지 방법을 제공하는 웹 서비스를 호스팅한다고 가정해 보겠습니다.
GetEmployee – 모든 직원 세부 정보를 가져옵니다.
SetEmployee– 직원 부서, 급여 등과 같은 세부 정보 값을 적절하게 설정합니다.
일반적인 RPC 스타일 통신에서 클라이언트는 요청에 있는 메서드를 호출하고 필요한 매개변수를 서버에 보내고 서버는 원하는 응답을 보냅니다.
위의 통신 모델에는 다음과 같은 심각한 제한 사항이 있습니다.
언어 독립적이 아님 - 메서드를 호스팅하는 서버는 특정 프로그래밍 언어로 되어 있으며 일반적으로 서버에 대한 호출은 해당 프로그래밍 언어로만 이루어집니다.
표준 프로토콜이 아님 – 원격 프로시저에 대한 호출이 이루어지면 호출은 표준 프로토콜을 통해 수행되지 않습니다. 이것은 웹을 통한 대부분의 통신이 HTTP 프로토콜을 통해 이루어져야 했기 때문에 문제였습니다.
방화벽 – RPC 호출은 일반 프로토콜을 통하지 않기 때문에 클라이언트가 서버와 통신할 수 있도록 서버에서 별도의 포트를 열어야 합니다. 일반적으로 모든 방화벽은 이러한 종류의 트래픽을 차단하며 클라이언트와 서버 간의 이러한 종류의 통신이 작동하도록 하려면 일반적으로 많은 구성이 필요했습니다.
위에 언급된 모든 제한 사항을 극복하기 위해 SOAP는 다음 통신 모델을 사용합니다.
클라이언트는 프로시저 호출 및 인수에 관한 정보를 SOAP 메시지로 형식화하고 이를 HTTP 요청의 일부로 서버에 보냅니다. 데이터를 SOAP 메시지로 캡슐화하는 이 프로세스를마샬링이라고 합니다.
그런 다음 서버는 클라이언트가 보낸 메시지를 풀고 클라이언트가 요청한 내용을 확인한 다음 적절한 응답을 SOAP 메시지로 클라이언트에 다시 보냅니다. 클라이언트가 보낸 요청을 래핑 해제하는 방식을 디마샬링이라고합니다.