본문 바로가기

개발

[API] REST vs SOAP

공통점

 : API(Application Programming Interface)를 구축하는 방법을 정의한다.

 

차이점 

REST(Representational State Transfer) SOAP(Simple Object Access Protocol)
프로토콜이 아님 W3C에서 유지관리하는 공식 프로토콜
가벼움
주로 IoT, 모바일 앱 개발, 서버리스 컴퓨팅 개발에 사용
OpenAPI (ex. Google Maps API, 공공데이터 API 등 )에 사용
무거움
주로 XML 메시징 같은 특정 요구사항이 필요한 경우 사용
기본 보안 및 트랜잭션 준수를 제공

 

REST(Representational State Transfer) : 표현 상태 전송

: 경량 웹 서비스 및 모바일 애플리케이션의 요구사항에 맞춰 조정된 일련의 아키텍처 원칙

: 권장 사항의 구현은 개발자에게 맡겨짐.

: HTTP 상에서 주로 이루어짐

: HTML, XML, 일반 텍스트, JSON 등 다양한 형식으로 메시지 반환 가능

RESTful? 

REST 원칙이 지켜진 

1. RESTful 조건

  ① 클라이언트-서버 아키텍처로 구성됨

  ② stateless : 세션 정보가 클라이언트에 보관

  ③ 데이터 캐싱

  ④ 표준화된 전송 형식이 정해진 통일된 인터페이스

  ⑤ 계층화된 시스템 제약조건

  ⑥ (선택) 주문형 코드를 사용하면 서버에서 실행 가능한 코드를 전송하여 클라이언트의 기능을 확정할 수 있음

 

SOAP : 단순 객체 액세스 프로토콜

: ACID( atomicity, consistency, isolation, and durability ; 안정적인 DB 트랜젝션 보장을 위한 속성 집합)이 포함됨

: 페이지 로드 시간이 길어질 수 있음

  - 프로토콜이기 때문에 복잡성과 오버헤드를 증가시키는 기본 제공 규칙을 제공하므로 발생하는 현상

: HTTP(웹 브라우저), SMTP(이메일), TCP 등 모든 응용 계층 프로토콜을 통해 처리될 수 있음

: Request가 수신될 시 Respone되는 SOAP 메시지는 XML 문서로 반환되어야 함

: SOAP API에 대한 완료된 요청은 브라우저에서 캐시할 수 없으므로 나중에 API로 다시 보내지 않으면 접근할 수 없음

1. 일반적인 웹 서비스 사양

  ① 웹 서비스 보안(WS-security)

  ② 웹 서비스 신뢰 전송(WS-ReliableMessaging)

  ③ 웹 서비스 주소 지정(WS-addressing)

  ④ 웹 서비스 설명 언어(WSDL)

 

출처

RedHat 공식문서

https://www.redhat.com/en/topics/integration/whats-the-difference-between-soap-rest

 

REST vs. SOAP

REST and SOAP define how to build application programming interfaces, which allow data to be communicated between web applications.

www.redhat.com

 

REST 공식문서

https://ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm

 

Fielding Dissertation: CHAPTER 5: Representational State Transfer (REST)

proxy CERN Proxy, Netscape Proxy, Gauntlet

ics.uci.edu

 

'개발' 카테고리의 다른 글

[React] github 프로젝트 로컬상에서 실행하기  (0) 2024.04.21
[Web] React, Spring boot 연동  (2) 2024.03.21
[nginx] 이미지 올리기  (0) 2024.03.02
IoT 사진  (2) 2023.11.20