320x100
320x100
SOAP (Simple Object Access Protocol)
- 다른 언어로 다른 플랫폼에서 빌드된 애플리케이션이 통신할 수 있도록 설계된 최초의 표준 프로토콜
- 빌트인 프로토콜을 사용하여 페이지 로드 시간이 REST보다 걸림
- 빌트인 프로토콜
- 보안과 ACID가 포함된 프로토콜
- 빌트인 프로토콜
SOAP의 구성
- 웹 서비스 보안 (WS-security)
- 토큰을 이용하여 메시지를 보호하고 전송
- WS ReliableMEssaging
- 불안정한 인프라로 전송되는 메시지 간 오류 표준화
- 웹 서비스 주소 지정 (WS-addressing)
- 심층 네트워크에 라우팅 정보를 유지관리 하는 대신, SOAP 헤더 내에 메타데이터로 해당 정보를 패키징
- 웹 서비스 기술언어 (WSDL)
- 웹 서비스가 무엇을 하는지 해당 서비스의 시작과 종료 위치를 기술
SOAP 메시지의 구조
- <Envelope>
- SOAP 메시지의 루트
- 선택 요소인 <Header> 와 필수 요소인 <body> 포함
- 메시지 경로를 따라 SOAP 노드가 처리할 응용 프로그램 관련 정보를 전달
- SOAP에 기능을 추가할 수 있음
- mustUnderstand (헤더 항목이 수신인이 처리해야하는 필수 항목 여부)
- actor (헤더 항목을 특정 Endpoint로 지정)
- encodingStyle (데이터 유형 정의)
- 인증 / 결제 등의 SOAP 메시지에 대한 응용프로그램별 정보
- <Body>
- 메시지의 최종 수신인에 대한 정보를 포함하는 필수 하위 요소
- 하위요소로는 네임스페이스
- <Fault>
- 오류를 보고하기 위한 body의 하위요소
- Soap 1.2 = <code> / <reason> / <node> / <role> / <detail>
- Soap 1.1 = <faultcode> / <faultstring> / <faultactor> / <detail>
SOAP request XML 예제
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
- <soap:Body xmlns:m="http://www.example.org/stock"> 이 네임스페이스
XML 태그에서의 콜론
- 네임스페이스 접두사
- 참고
: https://yingqusp.com/so/xml/866275
: https://webstudynote.tistory.com/110
: https://www.ibm.com/docs/ko/sva/9.0.5?topic=language-xml-namespace-definitions
XML 네임스페이스 적용 예제
<item-list xmlns:cdList="http://www.2mukee.com" xmlns:bookList="http://www.tistory.com">
<cdList:rock>
<title>CD ROM</title>
</cdList:rock>
<bookList:rock>
<title>rock and roll</title>
<price>5000</price>
</bookList:rock>
</itemList>
- <접두사:지역이름>으로 이름공간을 선언
- 참고
- https://myeonguni.tistory.com/1110
- validate XML (XML 형태가 정확한지 체크해주는 사이트)
기본적인 XML 예제
<?xml version="1.0" encoding="EUC-KR"?>
<MEMBER_REGISTER>
<TWOMUKKE_COMPANY>
<NAME>이무기</NAME>
<PHONE>010-1234-5678</PHONE>
<DATE>2022-05-03 00:23:50.775<DATE>
<COMMANT>안녕하세요? 고수가 되고 싶습니다.\n[이무기 드림]</COMMANT>
</TWOMUKKE_COMPANY>
<REGISTER_NUMBER>1</REGISTER_NUMBER>
</MEMBER_REGISTER>
참고
- XML SOAP의 구조와 개념
- SOAP 메시지의 구조
- SOAP와 XML 태그에 대한 자세한 정리
300x250
728x90
'Development > Development' 카테고리의 다른 글
괜찮은 프로그래머가 될 사람은 이미 정해져 있다. (0) | 2022.05.29 |
---|---|
10배 이상 뛰어난 개발자가 되는 방법 (0) | 2022.05.29 |
시니어 개발자가 말하는, 프론트엔드 업무와 잘하는 프론트엔드 개발자란 (0) | 2022.05.05 |
프론트엔드 개발자라면 알고 있어야 할 브라우저의 동작 과정 (0) | 2022.05.05 |
서버사이드 렌더링 이란? (0) | 2022.04.30 |