대중적으로 가장 많이 사용되는 애플리케이션 인터페이스
이를 통해 클라이언트는 서버에 접근하여 자원을 조작
할 수 있다
Representational State Transfer의 약자로, 웹과 같은 분산하이퍼미디어 시스템 아키텍처의 한 형식
주고 받는 자원에 이름
을 규정하고 URI에 명시해
HTTP 메서드(GET, POST, PUT, DELETE)를 통해 해당 자원의 상태를 주고 받는 것
REST 아키텍처를 따르는 시스템/애플리케이션 인터페이스
== 일관된 인터페이스
REST 서버는 HTTP 표준 전송 규약
을 따르기 때문에 어떤 프로그래밍 언어로 만들어졌느냐와 상관없이 플랫폼 및 기술에 종속되지 않고 타 언어,기술 들과 호환해 사용할 수 있다
서버에 상태 정보를 따로 보관하거나 관리하지 않는다는 것
서버는 클라이언트가 보낸 요청에 대해 세션이나 쿠키 정보를 별도로 보관X
-> 한 클라이언트가 여러 요청을 보내든, 여러 클라이언트가 각각 하나의 요청을 보내든 개별적으로 처리
-> 서버가 불필요한 정보를 관리하지 않아 비즈니스 로직의 자유도가 높고 설계 단순
REST는 HTTP 표준을 그대로 사용하므로 캐싱 기능 적용 가능
-> 사용을 위해 응답과 요청이 모두 캐싱 가능한지 명시가 필요하며, 캐싱이 가능한 경우 클라이언트
에서 캐시에 저장
해 두고 같은 요청에 대해 해당 데이터를 가져다 사용
(서버의 부하가 줄어 성능 개선)
REST 서버는 API를 제공하고 클라이언트는 사용자 정보를 관리하는 구조로 분리해 설계