SOAP(Simple Object Access Protocol)란 무엇인가요?

SOAP(Simple Object Access Protocol)는 SOA (서비스 지향 아키텍처) 내에서 웹 서비스를 구현하는 데 사용되는 기본적인 XML 기반 애플리케이션 프로토콜입니다. SOAP는 주로 HTTP와 미들웨어 메시징 시스템(JMS, MQ 시리즈, MSMQ, Tuxedo, TIBCO RV)을 통해 전송되지만 SMTP(Simple Mail Transfer Protocol) 및 FTP(File Transfer Protocol)와 같은 다른 프로토콜을 통해서도 전송될 수 있습니다.

SOAP 메시지는 일반적으로 다음 요소로 구성됩니다.

  • 봉투: SOAP 봉투는 SOAP 메시지의 루트 요소이며 필수입니다. 본질적으로 봉투에는 SOAP 메시지가 담겨 있는데, 이는 전통적인 봉투에 쓰여진 편지가 담겨 있는 것과 마찬가지입니다.
  • 헤더: SOAP 헤더는 선택 사항이며, 존재하는 경우 인증, 주소 지정, 라우팅 세부 정보 등 애플리케이션별 정보를 포함합니다.
  • 몸: SOAP 본문은 필수이며, 전송되는 실제 애플리케이션 메시지, 호출되는 특정 원격 작업 및 교환되는 데이터(매개변수)를 포함합니다.

SOAP 메시지는 애플리케이션과 클라이언트가 메시지를 분석하고 적절한 논리를 실행하는 데 필요한 정보를 포함해야 하므로 크기가 큰 경우가 많습니다. 메시지의 크기가 커질수록 서버에서 필요한 처리량도 늘어나서 서버의 리소스 소모가 늘어나고 전체 용량은 감소하게 됩니다. 크기가 커지면 SOAP 기반으로 구축된 애플리케이션의 성능 에 부정적인 영향을 미칠 수도 있습니다. 메시지를 전송하는 데 더 많은 네트워크 리소스가 필요하기 때문입니다.

SOAP는 XML 기반이므로 XML 중심 공격과 취약점에 취약하며, 특히 전송 계층 프로토콜(대부분 HTTP)과 관련된 공격에도 취약합니다.

SOAP와 관련된 보안 및 성능 문제를 해결할 수 있는 F5 제품: BIG-IP 애플리케이션 보안 관리자