SOAP이란?
- Simple Object Access Protocol
- HTTP, HTTPS, SMTP 등을 통해 XML기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜이다.
- 웹 서비스에서 기본적인 메시지를 전달하는 기반이 된다.
SOAP 작동원리
대다수의 방화벽이 웹 포트인 80 포트만 허용하기 때문에 SOAP은 대부분 HTTP에 의존하여 메시징 처리가 이루어진다. SOAP이 인터넷을 통한 메시징 처리의 표준으로 자리 잡을 수 있었던 이유는 HTTP 위에 SOAP이 올라 갈 수 있기 때문이다.
HTTP위에 SOAP이 올라간다는 것은 HTTP의 요청과 응답에 메시지에 SOAP 메시지가 포함될 수 있다는 것을 의미한다.
SOAP 메시지 구조
SOAP 메시지는 크게
- SOAP Envelope
- SOAP Header
- SOAP Body
- SOAP Fault
로 구성되어 있다.
SOAP 장점
- 기존 원격 기술들에 비해서 프록시와 방화벽에 구애받지 않고 쉽게 통신 가능
- 플랫폼과 프로그래밍 언어에 독립적이다.
- 웹 서비스를 제공하기 위한 표준(WSDL, UDDI, WS-*)이 잘 정립되어 있다.
- 에러 처리에 대한 내용이 기본으로 내장되어 있다.
- 분산 환경에 적합하다.
SOAP 단점
- 복잡한 구조로 인해 오버헤드가 있으며, 이는 SOAP의 확장을 저해하고 있다.
- REST에 비해 상대적으로 무겁고 속도도 느리다.
- 개발 난이도가 높아 개발 환경의 지원이 필요하다.