REST란?
REpresentational State Transfer
웹 상의 모든 자원에 대한 고유한 URI를 부여하여 활용하는 것
REST API란?
HTTP 통신에서 어떤 자원에 대해 CRUD (create, read, update, delete) 연산을 수행하기 위해 URI (resource) 요청을 보내는 방식
1. REST API의 구성요소
- Resource
- 고유한 ID를 가지는 자원
- 서버가 가지고 있는 자원에 대하여 클라이언트가 요청을 보낸다.
- URI
- Method
- PUT : 서버에게 자원 업데이트를 요청하는 것, 자원이 없다면 새로운 자원 생성을 요청 (update)DELETE : 서버에게 자원 삭제를 요청 (delete)처리를 위한 연산에 맞는 메소드를 사용하여 서버에 요청을 보낸다.
- PATCH : 서버에제 부분적 자원 업데이트 요청즉, 기존의 자원이 있을 지도 모르는 상황에서 업데이트 요청
- POST : 서버에게 자원을 보내면서 생성 요청, 새로운 정보 추가 (create)
- GET : 서버에 자원을 보내달라 요청 (read)
- Representation of Resource
- json, xml, rss 등
- 클라이언트와 서버가 데이터를 주고받는 형태
2. REST API의 특징
- uniform interface
- 특정 언어, 기술, 플랫폼에 종속되지 않는다.
- URI에 대한 요청을 통일되고, 한정적으로 수행한다.
- stateless
- 각 요청간 연관성이 없어야 한다.
- 무상태성은 서버의 처리방식에 일관성을 부여하고, 서버의 부담을 줄인다.
- 서버는 각 요청들을 개별적으로 인식하고 처리한다.
- cacheable
- 대량의 요청을 효율적으로 처리할 수 있게 돕는다.
- HTTP 프로토콜 표준에서 사용하는 Last-Modified Tag또는 E-Tag를 통해 캐싱을 사용할 수 있다.
- Client-server architecture
- 클라이언트는 사용자 인정, 세션 관리 등의 역할을 수행하며 서버의 자원에 요청을 보낸다.
- 서버와 클라이언트간 역할을 확실히 분리하여 서로의 의존성을 줄인다.
- 서버는 API를 제공한다.
- self-descriptiveness
- 요청 메세지만 보고도 쉽게 이해할 수 있는 자체 표현 구조를 갖는다.
- Layered system
- 보안, 로드밸런싱, 암호화 등을 위한 계층을 추가한다.
- 서버와 클라이언트 사이에 중간 계층이 존재해도 클라이언트는 중간 매체의 존재를 알 수 없다.
- 서버는 다중 계층으로 구성될 수 있다.
'웹 개발 > Web Development' 카테고리의 다른 글
테스트툴) Playwright 란 (0) | 2023.03.04 |
---|---|
Vuepress란 무엇인가 (0) | 2023.02.06 |
/etc/hosts 로컬에서 ip 주소 호스트네임 등록해 두고 사용하기 (0) | 2021.06.16 |
웹 개발) 브라우저 저장소 Web Storage (0) | 2021.04.09 |
[Django] 튜토리얼 Cheating Sheet (0) | 2021.01.21 |