본문 바로가기
HTTP 웹 기본 지식

HTTP 기본[Stateful, Stateless]

by danny-j 2022. 11. 23.

Stateful, Stateless

  • 네트워크 프로토콜
  • 클라이언트와 서버간의 통신하는 방식

 

Stateful(상태 유지)

  • 서버가 클라이언트의 상태를 보존
  • 서버가 클라이언트가 이전 단계에서 제공한 값을 보존하고 다음 단계에서도 가지고 있는 상태
  • 장점 -- 상태를 보존하고 있기 때문에 통신이 중단되더라도 중단된 곳 부터 다시 시작할 수 있음
  • 단점 -- 항상 같은 서버가 유지되어야 함

 

Stateless(무상태)

  • 서버가 클라이언트의 상태를 보존하지 않음
  • 서버가 클라이언트의 상태를 보존하지 않기 때문에 매번 요청에 모든 상태 값들을 전달해 줘야 함
  • 장점 -- 서버가 클라이언트의 상태를 보존하지 않기 때문에 확장성이 좋음(스케일 아웃 - 수평 확장 유리)
  • 단점 -- 상태 정보를 저장하지 않기 때문에 클라이언트 측에서 송신할 데이터의 양이 많아짐

 

Stateless 실무 한계

  • 모든 것을 무상태로 설계 할 수 있는 경우도 있고 없는 경우도 있다.
  • Stateless(무상태)
    • ex) 로그인이 필요 없는 단순한 서비스 소개 화면
  • Stateful(상태 유지)
    • ex) 로그인을 해야하는 경우
  • 로그인한 사용자의 경우 로그인 했다는 상태를 서버에 유지해야 함
  • 일반적으로 브라우저 쿠키와 서버 세션등을 사용해서 상태를 유지
  • 상태 유지는 최소한만 사용

댓글