REST
: Representational State Transfer
- 자원(해당 소프트웨어가 관리하는 것)을 이름으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것
- 자원의 표현(이름)에 의한 상태 전달
- 네트워크 상 클라이언트와 서버 사이의 통신 방식 중 하나
HTTP URI를 통해 자원을 명시하고, HTTP Method(GET, POST 등)를 통해 해당 자원에 대한 CRUD Operation을 적용한다. 웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여한다.
장점
- HTTP 프로토콜의 인프라를 그대로 사용하므로 별도의 인프라를 구축할 필요가 없고 해당 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
- 의도하는 바를 명확히 나타내므로 의도를 쉽게 파악할 수 있다.
- 서버와 클라이언트의 역할을 명확히 나눈다.
단점
- 표준이 존재하지 않는다.
- 사용 가능한 메소드가 네가지 뿐이다.
- 구형 브라우저에서 아직 제대로 지원해주지 못하는 부분이 존재한다.
- PUT, DELETE 사용 불가
REST API
REST를 기반으로 서비스 API를 구현한 것. OpenAPI는 대부분 이를 제공한다.
RESTful 하다?
공식 용어는 아니지만 REST의 원리를 잘 따르는 시스템을 칭하는 용어이다. REST API를 제공하는 웹 서비스를 RESTful하다고 할 수 있다.