👀 REST?
- 서버가 클라이언트의 상태 정보를 가지고 있지 않는 것
HTTP
를 통한 서버 클라이언트 모델에서 서버가 클라이언트의 위치와 같은 현재 상태를 유지하는 정보를 가지고 있으면 오버헤드가 크다.
- 그래서 클라이언트의 상태 정보를 서버에 저장하지 않고 서버와 클라이언트 간에 주고받는
HTTP
메세지 안에 클라이언트의 상태 정보를 담고 그것을 해석할 수 있는 방법까지 담는다.
- 서버는 특정 클라이언트에 대한 정보를 저장하고 있지 않아도
HTTP request
메세지만 보고 클라이언트의 상태를 알 수 있고 클라이언트는 HTTP response
메세지를 받으면 어떤 방식으로 메세지를 가져와야 할 지 알 수 있다.
- 이런 아키텍처를 따르는 서비스를
RESTful
이라 한다.
REST 요구사항
클라이언트-서버
구조로 이루어져야 한다.
HTTP
메세지 안에 모든 정보가 들어있어야 한다. (다른 데이터 스토리지 사용 X)
- 서버의 response가 클라이언트 쪽 또는 어떤 웹 캐시에 저장할 수 있어야 한다.
- 클라이언트가 웹 서버에 바로 연결되었든 다른 중간 지점을 거쳐서 연결이 되었든 클라이언트 입장에서는 서비스를 받는 데에 차이가 없어야 한다.
- 자바스크립트와 같이 어떤 코드가 클라이언트 기기에 다운로드 되었을 때 클라이언트 기기에 그 코드를 해석할 수 있는 방법이 없어도 그것을 실행할 수 있게 해 주는 응용프로그램을 전달해야 한다.
- 특정한 컴퓨터 아키텍처에 상관없이 어디서든 실행할 수 있어야 한다.
출처