REFERENCE:
What is REST API (RESTful API)?
[네트워크] REST API란? REST, RESTful이란?
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의
추가적으로 공부하면 좋은 페이지
JSON의 모든 것
CORS의 모든 것
URI 분리와 HTTP API 설계

😪. REST란?
들어가기 전, REST API는 프로토콜이 아니다! HTTP 프로토콜을 사용하는 아키텍처 스타일 즉, 템플릿이다. 많은 블로그에서 잘못된 정보들이 넘처나는데, 잘 골라서 정리하자.
REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다. ( 자원, 행위, 표현)
쉽게 말해서,
- HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)를 명시하고,
- HTTP Method(GET, POST, PUT, DELETE)를 통해
- 해당 자원(URI)에 대해서 CRUD를 적용하는 것을 의미한다.
REST 구성 요소
- 자원(Resource) - HTTP URI
- 모든 자원은 고유한 ID를 가지고 ID는 서버에 존재하고 클라이언트는 각 자원의 상태를 조작하기 위해 요청을 보낸다.
- 자원에 대한 행위(Verb) - HTTP Method
- 클라이언트는 URI를 이용해 자원을 지정하고 자원을 조작하기 위해 Method를 사용한다. HTTP 프로토콜에서는 GET , POST , PUT , DELETE 같은 Method를 제공한다.
- 자원에 대한 행위의 내용(Representations) - HTTP Message PayLoad
- 클라이언트가 서버로 요청을 보냈을 때 서버가 응답으로 보내주는 자원의 상태를 Representation이라고 한다. REST에서 하나의 자원은 JSON , XML , TEXT , RSS 등 여러형태의 Representation으로 나타낼수 있다.
REST 특징
-
Server-Client 구조를 가진다
자원이 있는 Server와 자원을 요청하는 Client의 구조를 가진다.
-
무상태(Stateless) 통신
클라이언트의 Context를 서버에 저장하지 않는 통신을 바로 Stateless 통신이라 하고, HTTP는 Stateless 프로토콜이므로 REST 역시 무상태성을 가진다.