STATELESS, STATEFUL

2021. 1. 12. 21:04HTTP

HTTP의 특징중 하나는 STATELESS(무상태)이다.

STATELESS — 서버는 클라이언트의 상태를 보존하지 않는다.

장점: 서버 확작성이 높다(스케일 아웃)

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

 

STATEFUL

고객(클라이언트) — 아메리카노 주세요.

알바1(서버1) — 아이스로 드릴까요? 따뜻한걸로 드릴까요?

고객(클라이언트) — 아이스로 주세요.

알바1(서버1) — 네 여기 있습니다.

  • 알바1이 고객이 아메리카노를 주문한 사실을 알고 있다.

STATEFUL 문제점 — 중간에 서버가 변경되면?

고객(클라이언트) — 아메리카노 주세요.

알바1(서버1) — 아이스로 드릴까요? 따뜻한걸로 드릴까요?

고객(클라이언트) — 아이스로 주세요.

알바2(서버2) — 어떤 음료를 아이스로 드릴까요?

  • 알바2는 고객이 주문한 음료정보를 알지 못한다.

STATELESS

고객(클라이언트) — 아메리카노 주세요.

알바1(서버1) — 아이스로 드릴까요? 따뜻한걸로 드릴까요?

고객(클라이언트) — 아메리카노 아이스로 주세요.

알바2(서버2) — 네 여기 있습니다.

  • 서버는 클라이언트에 대한 정보(상태)를 보존하지 않지만, 클라이언트가 자원에 대한 모든 정보를 서버에 제공함으로써 이 문제를 해결할 수 있다.

 

하지만 클라이언트의 상태를 유지해야하는 서비스도 있다 (로그인)

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

'HTTP' 카테고리의 다른 글

HTTP 메시지 구조  (0) 2021.01.12
HTTP 지속연결  (0) 2021.01.12
IP, TCP, UDP 간단 정리  (0) 2021.01.12