• REST란?
∘ REpresentational State Transfer 약자
=> 자원을 이름으로 구분해 해당 자원의 상태를 주고 받는 모든 것
즉, 자원의 표현에 의한 상태 전달!
- 자원의 표현?
자원 = 해당 SW가 관리하는 모든 것(문서, 그림, 데이터 ...)
자원의 표현 = 그 자원을 표현하기 위한 이름
ex) DB의 학생 정보가 자원 -> 'students'가 자원의 표현 - 상태(정보) 전달
데이터가 요청되는 시점에 자원의 상태 전달
JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적임
∘ 개념
- HTTP URI를 통해 자원을 명시하고,
HTTP Method를 통해 해당 자원에 대한 CRUD 연산을 적용하는 것을 의미함 - 웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여함
- REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용
-> 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일
∘ 특징
- Server-Client 구조
자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 Client - Stateless(무상태)
HTTP 프로톹콜은 Stateless 프로토콜이므로 REST 역시 무상태성 - Cacheable(캐시 처리 기능)
웹 표준 HTTP 프로토콜을 그대로 사용하므로 웹에서 사용하는 기존의 인프라 활용 가능함 - Layered System(계층 구조)
클라이언트와 서버 분리되어 있음 - Uniform Interface(인터페이스 일관성)
HTTP 표준 프로토콜에만 따른다면 모든 플랫폼에서 사용 가능 - Self-Descriptiveness(자체 표현)
요청 메시지만 보고도 쉽게 이해할 수 있음
• REST API
- API가 뭔데?
Application Programming Interface
응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
- REST API란?
REST의 특징을 기반으로 서비스 API를 구현한 것
각 요청이 어떤 동작이나 정보를 위한 것인지를 요청의 모습 자체로 추론이 가능
서버의 DB 등에서 클라이언트로 REST의 특징을 살려서 데이터를 특정형태에 맞게 요청하고 받아오는 작업
• RESTFUL API
- RESTFUL이 뭔데?
REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어
REST API를 제공하는 웹 서비스를 RESTful 하다고 할 수 있음
- RESTFUL API
REST의 6가지 설계 규칙을 잘 지켜서 설계된 API
요청을 보내는 주소만으로도 어떤 것을 요청하는지 파악 가능
URI는 정보의 자원만 표현해야 하고, 자원의 행위는 HTTP Method에 명시하는 것
(자세한 내용은 생략 ...)
'WEB' 카테고리의 다른 글
CORS? 어떻게 해결하지? (0) | 2023.05.10 |
---|---|
Node.js vs 브라우저 환경 (0) | 2023.05.08 |
쿠키 vs 세션 vs 웹 스토리지 (0) | 2023.05.05 |
XML, JSON, YAML (0) | 2023.04.28 |
MPA/SPA (0) | 2023.04.23 |