반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ios
- 네트워크
- 데브옵스
- boj
- 쿠버네티스
- 컨테이너
- NGINX
- 운영체제
- C++
- swift 클로저
- AWS
- docker
- 프로세스
- centOS
- 도커 명령어
- centOS7
- 리눅스
- Python
- devops
- Swift
- linux
- 클라우드
- k8s
- 인프라
- os
- 부스트코스
- 도커 컨테이너
- 도커
- kubernetes
- 도커 이미지
Archives
- Today
- Total
귀염둥이의 메모
[Network] REST API와 RESTful 개념 본문
반응형
REST (Representational State Transfer)
- 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것
- 자원(SW가 관리하는 모든 것)의 표현에 의해서 상태를 전달한다
- 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용한다 (웹의 장점을 최대한 활용할 수 있음)
- 자원을 URI를 통해서 명시한다
- HTTP 메소드를 이용하여 자원에 대한 CRUD 연산을 적용한다
REST 구성
- 자원 (Resource) - URI
- 행위 (Verb)- HTTP 메소드
- 표현 (Representations) - JSON, XML ...
REST의 특징
- Uniform Interface
- URI로 지정한 Resource에 대한 조작을 통일되고 한정적인 인터페이스로 수행
- HTTP 표준을 따르는 모든 플랫폼에서 사용이 가능
- Stateless
- HTTP는 Stateless이므로 REST 역시 무상태성
- 세션 정보나 쿠키 정보를 별도로 저장하고 관리하지 않기 때문에 API 서버는 들어오는 요청만 단순히 처리
- 서비스의 자유도가 높아지고 구현이 단순해진다
- Cacheable
- 웹 표준인 HTTP를 그대로 사용하므로 웹에서 사용하는 기존 인프라 그대로 활용
- HTTP가 가진 캐싱 기능이 적용 가능
- Self-descriptiveness
- REST API 메시지만 보고도 쉽게 이해할 수 있는 자체 표현 구조로 되어있음
- Client-Server 구조
- REST Server는 API 제공
- 클라이언트는 세션, 로그인 정보 등을 직접 관리
- 각각의 역할이 구분되고 서로 간 의존성이 줄어듦
- Layered System
- REST Server는 다중 계층으로 구성될 수 있음
- 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있음
- 게이트웨이, Proxy 같은 네트워크 기반의 중간 매체를 사용할 수 있게 함
REST의 장점
- HTTP 프로토콜을 그대로 사용하기 때문에 REST API 사용을 위한 별도의 인프라가 필요 없음
- HTTP 표준을 따르는 모든 플랫폼에서 사용이 가능
- REST API 메시지가 의도하는 바를 명확하게 나타내기 때문에 의도하는 바를 쉽게 파악할 수 있음
- 클라이언트와 서버의 역할을 명확하게 분리
REST의 단점
- 명확한 표준이 존재하지 않음
- HTTP 메소드 형태가 제한적임(GET, POST, PUT, DELETE)
REST API
REST 기반으로 서비스 API를 구현한 것
REST API 특징
- 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용이 편리함
- HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있음
RESTful
- REST API를 제공하는 웹 서비스를 RESTful 하다고 할 수 있음
- REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭됨
RESTful의 목적
이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것 (일관적인 컨벤션)
반응형
'CS > 네트워크' 카테고리의 다른 글
Vary 헤더 (0) | 2023.06.09 |
---|---|
[Network] SLB(Server Load Balancer) (0) | 2023.04.15 |
[Network] CDN (Contents Delivery Network) (0) | 2021.09.03 |
[Network] VPN (Virtual Private Network) 기본 개념 (0) | 2021.08.31 |
[Network] 프록시 서버(Proxy Server), Forward Proxy, Reverse Proxy (0) | 2021.08.30 |
Comments