IT Technology/Network

stateful과 stateless 차이

by빵수 2024. 8. 31. 15:14
728x90
반응형

stateful과 stateless 차이에 대해서 알아보자.

 

 

Stateful (상태유지)


클라이언트-서버 관계에서 서버가 클라이언트의 상태를 보존함을 의미한다.
클라이언트의 이전 요청이 서버에 잘 전달되었을 때, 클라이언트의 다음 요청이 이전 요청과 관계가 이어지는 것을 의미한다.

 

  • 상태에 대해 저장해야 하기 때문에 백업 스토리지가 요구된다.
  • 상태 저장에 대한 요청은 서버 측 상태에 따라 달라지게 된다.
  • 예) TCP통신의 경우 server와 client는 1. establishing connection, 2. Trasmitting data 3. Terminating connection이라는 TCP handshake 과정을 통해서 연결되며 데이터를 전송하여, 서버가 클라이언트의 세션 정보를 저장한다.

 

Statless (무상태)


클라이언트-서버 관계에서 서버가 클라이언트의 상태를 보존하지 않음을 의미한다.
Stateless 구조에서 server는 단순히 요청이 오면 응답을 보내는 역할만 수행하며, 세션 관리는 클라이언트에게 책임이 있다.
따라서 Stateless 구조는 클라이언트와의 세션 정보를 기억할 필요가 없으므로, 이러한 정보를 서버에 저장하지 않습니다. 대신 필요에 따라 외부 DB에 저장하여 관리 할 수 있다.

 

  • 웹서버 통신(http) 특성상 사용자(브라우저)의 이전 상태 client(쿠키) or server(세션) 정보를 기록하지 않는 접속이란 의미다.
  • 브라우저가 데이터를 전송할 때마다 연결하고 바로 끊어버리는 방식이다.
  • 장점 : 서버의 확장성이 높기 때문에 대량의 트래픽 발생 시에도 대처를 수월하게 할 수 있다.
  • 단점 : 클라이언트의 요청에 상대적으로 Stateful 보다 더 많은 데이터가 소모된다. (매번 요청할때마다 자신의 부가정보를 줘야 하니까)
  • 예) UDP는 TCP와 달리 handshaking 과정을 통해 연결 세션을 인증하는 절차를 수행하지 않는다. 세션 상태에 관계없이 단순히 데이터그램을 source에서 destination 쪽으로 전송한다. client가 송신하려 했던 모든 데이터가 server 쪽에 수신되었는지 확인하지 않는다.
  • 따라서 server쪽은 client와의 세션 정보를 전혀 저장하지 않으므로 stateless 구조를 가지고 있다.

 

 

 

 

 

출처

https://velog.io/@adc0612/stateful%EA%B3%BC-stateless-%EC%B0%A8%EC%9D%B4-7tfkp7a4

 

stateful과 stateless 차이

클라이언트-서버 관계에서 서버가 클라이언트의 상태를 보존함을 의미한다.클라이언트의 이전 요청이 서버에 잘 전달되었을 때, 클라이언트의 다음 요청이 이전 요청과 관계가 이어지는 것을

velog.io

 

반응형