[Stateful/Stateless] Stateful vs. Stateless 서비스와 HTTP 및 REST
Contents 0. Prologue 1. Stateful Service 2. Stateless Service 3. Why Stateless Service 4. Stateless Service 및 HTTP, 그리고 REST Stateful/Stateless 서비스의 개념을 알아보고, 이를 바탕으로 Stateless 서비스가 최근 각광 받는 이
5equal0.tistory.com
Stateful Service
server와 client간 **세션의 ‘state’**에 기반하여 client에 response를 보냄
이를 위해 세션의 state를 포함한 client와의 세션정보를 server에 저장
*세션
- server가 client에게 요청을 받으면, server가 저장 및 관리하는 일시적으로 client에 대한 인증정보와 같은 상태정보
아래와 같은 Stateful service 구조의 경우,
Client A의 요청이 server#1에 전달되면, server#1에 세션정보가 기록됨, 하지만 server#2에는 없음
이후, A의 요청이 server#2에 전달되면, 세션 인증을 처음부터 다시 해야 될 필요가 있어
이를 위한 작업을 하던가 아니면 server#1으로만 가도록 작업이 필요.
Stateless Service
- server의 응답이 client와의 세션 ‘state’과 독립적인 상태
- server는 단순히 요청이 오면 응답을 하는 역할만 수행
- 세션 관리는 client가 책임
- 즉, client와의 세션 정보를 기록할 필요가 없다.
- 대표적으로 UDP, HTTP
udp는 tcp와 다르게 handshaking 과정이 없이 그냥 전송만 한다.
서버는 client의 정보를 저장하지 않는 다.
별도 외부의 DB를 둘수는 있다.
웹서비스는 모두 Stateless server 구조를 따르고 있다.
Why Stateless Service?
최근의 웹서비스 구조는 모두 Stateless 구조 기반을 따르고 있습니다
가장 큰 장점은 무엇일까요?
scaling이 자유롭다.
stateful의 경우에는 client 정보를 각 서버에 동기화 시켜줘야 되지만 stateless는 그럴 필요가 없음
HTTP와 REST
Stateless를 검색하면 연관검색어가 http와 rest이다.
이 둘의 차이는 무엇일까?
http는 stateless한 대표적인 프로토콜
rest는 stateless한 대표적 설계구조이다.
REST에 대한 게시글은 이후 추가로 작성하겠다.
'인프라' 카테고리의 다른 글
API gateway와 LoadBalancer 뭐가 다른가?? (0) | 2024.06.28 |
---|---|
Load Balancer L7이 L4보다 느린 이유 (0) | 2024.06.23 |
DNS 레코드란? (0) | 2024.06.06 |
네임서버란? (0) | 2024.05.28 |
MySQL과 PostgreSQL의 차이점 (0) | 2024.05.23 |