HTTP

Stateful, Stateless

느리지만 꾸준하게 2022. 4. 7. 10:05

무상태 프로토콜

 

스테이스리스(Stateless)

  • 서버가 클라이언트의 상태를 보존 X

 

  • 장점 : 서버 확장성 높음(스케일 아웃)

 

  • 단점: 클라이언트가 추가 데이터 전송

Stateless는 고객이 필요할 때마다 데이터를 그때그때 다 넘긴다. 중간에 점원이 바뀌어도 상관없다.

 

 

 

 

 

Stateful은 특정데이터만 넘겨준다.(점원은 그대로 유지)

 

Stateful, Stateless 차이

 

 

정리

  • 상태 유지: 중간에 다른 점원으로 바뀌면 안됨.(중간에 다른 점원으로 바뀔 때 상태 정보를 다른 점원에게 미리 알려줘야 함)

 

  • 무상태: 중간에 다른 점원으로 바껴도 된다.

 

  • 갑자기 고객이 증가해서 점원을 대거 투입할 수 있다.

 

  • 클라이언트 요청이 증가해도 서버를 대거 투입 할 수 있다.

 

  • 무상태는 응답 서버를 쉽게 바꿀 수 있다. => 무한한 서버 증설 가능

 

 

 

 

 

 

아래 그림을 보면 stateful에서는 서버를 늘리기가 어렵다. 서버1(점원 A)와 계속 통신을 해야하기 때문이다.

 

갑자기 서버1번이 장애가 나면? 클라이언트A는 결제를 다시해야한다.(상점 예시)

 

 

 

 

 

 

 

 

 

 

무상태에서는 스케일 아웃을 통해서 수평 확장을 하게 되는데 이벤트 페이지 같은거 위해서 장비를 수십대 늘릴 수가 있다.

 

 

 

 

 

 

 

Stateless

 

실무 한계

  • 모든 것을 무상태로 설계 할 수 있는 경우도 있고 없는 경우도 있다.

 

  • 무상태 ex) 로그인이 필요 없는 단순한 서비스 소개 화면

 

  • 데이터를 서버에 너무 많이 보낸다.

 

 

 

 

 

상태 유지

  • ex) 로그인

 

  • 사용자가 로그인한 경우 로그인 했다는 상태를 서버에 유지

 

  • 일반적으로 브라우저 쿠키와 서버 세션등을 사용해서 상태 유지

 

  • 상태 유지는 최소한만 사용

 

 

 

 

 

 

 

 

 

 

 

 

 

<출처 김영한: 모든 개발자를 위한 HTTP 웹 기본 지식 >

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

 

모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의

실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런...

www.inflearn.com

 

 

 

 

 

 

 

 

 

 

 

 

 

'HTTP' 카테고리의 다른 글

HTTP 메시지  (0) 2022.04.07
비 연결성(connectionless)  (0) 2022.04.07
HTTP 기본 & 클라이언트 서버 구조  (0) 2022.04.07
웹 브라우저 요청 흐름  (0) 2022.04.07
URI(Uniform Resource Identifier)  (0) 2022.04.07