웹의 장점을 최대한 활용할 수 있는 아키텍쳐
최근의 서버 프로그램은 다양한 브라우저와 모바일 디바이스에서도 통신이 가능해야함.
HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
즉, REST는 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다.
CRUD Operation 에는
모든 자원에 고유한 ID가 존재, 자원은 Server에 존재.
Client는 URI를 이용해서 자원을 지정하고 해당 자원의 정보에 대한 조작을 Server에 요청한다.
Client가 자원의 정보에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.
REST에서 하나의 자원은 JSON, XML, TEXT, RSS등 여러 형태의 Representation으로 나타내어 질수 있다.
JSON 또는 XML을 통해 데이터를 주고 받는 것이 일반적이다.
표준이 존재하지 않는다.
사용할수 있는 Method가 4가지 밖에 없다.(HTTP Method형태 제한적)
구형 브라우저가 아직 제대로 지원해주지 못한다. (PUT, DELETE, pushState 등)