REpresentation State Tranfer
서버-클라이언트 구조
→ 클라이언트와 서버의 관심사를 분리하여 독립적으로 진화 가능
무상태성
→ 서버는 클라이언트에 대한 정보를 저장하지 않는다.
캐싱
→ 클라이언트는 응답을 캐싱할 수 있다.
자체 표현 구조
→ 요청된 REST를 보고 무엇을 하고자 하는지 파악 가능
일관된 인터페이스
→ 동일 인터페이스에 동일한 연산이 수행해야한다.
계층화 시스템 (Layered System)
→ 클라이언트는 중간 서버(로드 밸런서, 캐시 등)의 존재를 알 수 없으며, 계층적으로 구성 가능
+) Code on Demand (선택): 서버가 클라이언트에 실행 가능한 코드를 전송하여 기능 확장 가능
REST 특징을 띄고 있는 API