무상태 프로토콜(Sateteless)

gotcha!!·2023년 8월 24일
0

HTTP

목록 보기
7/29

HTTP는 무상태 프로토콜은 지향한다.

무상태 프로토콜 이란, 서버가 클라이언트의 상태를 보존 하지 않는다.

일단 무상태를 보기 전, 상태 유지를 예를 들어 알아보자

아이폰을 사러 폰 가게에 와서 듣는 대화 내용이다.
고객 : 아이폰 14프로 얼마인가요?
점원 : 100만원입니다. (아이폰 14프로 상태 유지)
고객 : 2개 살게요.
점원 : 신용카드로 구매하시겠어요? 현금 구매 하시겠어요? ( 아이폰 14프로, 2개 상태 유지)
고객 : 신용카드로 할게요.
점원 : 200만원 결제 되었습니다. (아이폰 14프로, 2개, 신용카드 상태 유지)

이렇게 한 점원이 고객과 서로 대화를 하면서 상태를 유지하는 것이다.
이는 나중에 점원이 바뀌게 되면 해당 대화 내용을 알 수 없는 꼴이 되어버린다.

무상태 프로토콜 예를 들어보자.

똑같이 아이폰을 사러왔다.
고객 : 아이폰 14프로 얼마인가요?
점원A : 100만원입니다.
고객 : 아이폰 14프로 2개 살게요
점원B : 200만원이고, 신용카드, 현금 중 어떤걸로 하시겠어요?
고객 : 아이폰 14프로 2개 현금으로 구매할게요
점원C : 200만원 결제 되었습니다.

이렇게 점원 3명과 고객 1명이 서로 대화를 한다. 중간에 점원이 바뀐다 하더라도 고객과의 대화가 이어진다는 점이 있다.

정리하자면,

상태 유지 는 중간에 다른 점원으로 바뀌면 안되듯이, 항상 같은 서버를 유지해야한다.
그러나
무상태 프로토콜 은 항상 같은 서버가 유지될 필요가 없다.
그렇기에 클라이언트 요청이 증가해도 서버를 대거로 투입할 수 있으며 수평 확장에 유리하다.
근데 전송되는 데이터양이 너무 많다는 것이 단점이다.

로그인 기능에 있어서는 상태를 유지해야하기에 일반적으로 브라우저의 쿠키와 서버 세션을 통해서 상태를 유지한다.
상태 유지는 최소한으로 사용하는 것이 좋다.

profile
ha lee :)

0개의 댓글