Representational State Transfer 의 약자로 어떤 자원에 대한 대표값을 사용하여 상태(지속적 변경되는 값)를 전달 하는 것
Uniform :
모든 플랫폼에 사용 가능하며, URI로 지정한 리소스에 대한 조작이 가능
Stateless :
HTTPSession과 같은 컨텍스트 저장소에 상태정보 저장/관리하지 않음
API 서버는 들어오는 요청 단순 처리
Cacheable :
HTTP 기존의 웹 표준을 그대로 사용하므로, 웹에서 사용하는 기존 인프라 그대로 활용 가능
대량의 요청을 효율적으로 처리하기 위함
Self-descriptiveness :
동사(Method) + 명사(URI)로 이루어져있어 어떤 Method에 무슨 행위를 하는지 알 수 있음
JSON 포맷으로 직관적 이해 가능 구조
Client - Server 구조 :
서버 - API 제공
Client - 사용자 인증, 컨텍스트(세션, 로그인 정보 등) 관리
계층형 구조 :
사용자 인증, 로드밸런싱, 암호화 계층 추가가 가능하여 구조상의 유연성을 둘 수 있고, PROXY, GW 같은 네트워크 기반의 중간매체를 사용할 수 있게 함
이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것