개발자's Life

[Network] HTTP - Stateful, Stateless 본문

Back-end/Network

[Network] HTTP - Stateful, Stateless

Rowen Jobs 2023. 7. 24. 22:03
728x90
반응형

Stateless -> 서버가 클라이언트 상태를 보존하지 않는 것! 

-> 서버가 이전 상태를 기억하지 않는것

1. Client :  "물 얼마인가요?" -> Server : "500원 입니다."

2. Client : "물 3개 주세요" -> Server : "1,500원 입니다." (이전 상태 기억 x)

3. Client : "물 3개 현금으로 구매할게요" -> Server : "현금으로 구매완료 했습니다."(이전 상태 기억 x)

 

장점

: 무상태는 클라이언트 요청이 많이 증가하여서 무한히 서버 증설이 가능

: 스케일 아웃 - 수평 확장 유리

 

단점

: 로그인 상태를 유지해야 하는 경우에는 사용하기 힘듬

 

Stateful  -> 서버가 클라이언트 상태를 보존 하는 것!

-> 서버가 이전 상태를 기억하고 있는것.

예제)

1. Client :  "물 얼마인가요?" -> Server : "500원 입니다."

2. Client : "3개 주세요" -> Server : "1,500원 입니다." (이전 상태 기억 o)

3. Client : "현금으로 구매할게요" -> Server : "현금으로 구매완료 했습니다."(이전 상태 기억o)

장점

: 한 서버에서 로그인 상태를 유지해야할 경우 사용

 

단점

: 클라이언트 1은 서버 1이랑 계속 요청/응답을 해야하는데 만약 서버1번이 문제가 생길 경우 서버2로 넘어가게 되는데 그렇게 되면

처음부터 해야한다.

 

 

상태를 유지하는것은 최소한으로만 사용해야 하고

최대한 무상태로 설계하지만 정말 어쩔수 없는 경우에만 유상태로 설계해야 합니다.

 

참고 : 모든 개발자를 위한 HTTP 웹 기본 지식

728x90
Comments