REST(Representational State Transfer)
- 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다.
월드 와이드 웹, 하이퍼미디어, 소프트웨어 아키텍처 다 어려운 말들이다. 하나씩 정리해보자.
엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음이다.
네트워크 아키텍처 원리..? 여기서 '네트워크 아키텍처 원리'란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다. 간단한 의미로는, 웹 상의 자료를 HTTP 위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다.
- REST 아키텍처 스타일에서 데이터와 기능은 리소스로 간주되며 URI( Uniform Resource Identifier )를 사용하여 액세스된다.
- 리소스는 간단하고 잘 정의된 작업 집합을 사용하여 작동한다. 또한 리소스는 클라이언트가 HTML, XML, 일반 텍스트, PDF, JPEG, JSON 등과 같은 다양한 형식의 콘텐츠에 액세스할 수 있도록 해당 표현에서 분리되어야 한다.
- 클라이언트와 서버는 표준화된 인터페이스와 프로토콜을 사용하여 리소스 표현을 교환한다. 일반적으로 HTTP는 가장 많이 사용되는 프로토콜이지만 REST는 이를 의무화하지 않는다.
- 리소스에 대한 메타데이터를 사용할 수 있으며 캐싱 제어, 전송 오류 감지, 적절한 표현 형식 협상, 인증 또는 액세스 제어 수행에 사용된다.
- 그리고 가장 중요한 것은 서버와의 모든 상호 작용이 상태 비저장이어야 한다는 것이다.
- 이러한 모든 원칙은 RESTful 애플리케이션이 단순하고 가볍고 빠를 수 있도록 도와준다.