URI(Uniform Resource Identifier)로 표현되는 자원에 대한 행위를 HTTP 메서드(GET, POST, PUT, DELETE 등)로 나타냄. 예를 들어, /users URI는 사용자 자원을 나타내며, GET 메서드를 사용하여 사용자 목록을 가져올 수 있음.
자원의 상태를 XML, JSON, HTML 등의 형식으로 전송하며 이를 통해 클라이언트는 서버가 제공하는 자원의 상태를 이해하고 처리할 수 있음.
클라이언트의 상태를 서버에서 유지하지 않음. 이를 통해 서버는 클라이언트의 요청을 독립적으로 처리할 수 있음.
HTTP 프로토콜의 캐싱 기능을 사용하여 응답 결과를 캐시할 수 있음. 이를 통해 서버의 부하를 줄이고, 응답 시간 단축 가능.
서버와 클라이언트 사이에 중간 계층(로드 밸런서, 캐시 등)을 둘 수 있음. 이를 통해 시스템을 확장하고, 보안성을 높일 수 있음.
XML을 사용하여 데이터를 교환하며, HTTP, SMTP, FTP 등의 프로토콜을 사용하고 메시지의 크기가 크고 복잡하여 처리 속도가 느리다는 단점이 있지만, 보안성과 신뢰성이 높은 것이 특징.
또한, WSDL(Web Services Description Language)이라는 문서를 제공하여 API의 기능과 사용법을 상세하게 설명이 가능.
REST API와는 다르게 클라이언트가 필요한 데이터만 요청하고, 서버는 그에 대한 응답만 제공하여 불필요한 데이터 전송을 줄이고, 빠른 응답 시간과 유연한 데이터 요청이 가능.
하지만, 서버 측에서는 쿼리를 해석하고 처리하는 추가적인 작업이 필요하다는 단점이 있음.