Click the word ⬆️ , will move to the section
<aside> 💡 Representational State Transfer의 약자, 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든것을 의미한다.
</aside>
자원 (resource) 의 표현(representation)에 대한 상태 전달
자원(resource) : 해당 소프트웨어가 관리하는 모든것을 말한다. (문서, 그림, 데이터, 소프트웨어)
자원의 표현: 그 자원을 표현하기 위한 이름
상태정보 전달
데이터가 요청되어지는 시점에서 자원의 상태, 정보를 전달한다.
JSON , XML을 이용하는 것이 일반적이다.
월드 와이드 웹(www) 과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식
HTTP URI(Uniform Resource Identifier) 를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE) 를 통해 해당 자원에 대한 CRUD Operation을 적용하는것을 의미한다.
REST는 자원기반의 구조설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍처를 의미.
-웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여한다.
장점
HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없다.
HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용이 가능하다.
Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.
REST API 메세지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
여러가지 서비스 디자인에서 생길 수 있는 문제를 최소화한다.
서버와클라이언트의 역할을 명확하게 분리한다.
단점
표준이 존재하지 않는다.
사용할 수 있는 메소드가 제한적이다.(4가지)
브라우저가 지원하지 못한 부분이 존재한다.
PUT, DELETE를 사용하지 못하는 점.
pushState를 지원하지 않는 점