본문 바로가기

DEVELOP/Network

[Network] Stateful vs Stateless

반응형

 HTTP에 대해 배웠기 때문에 Stateless라는 개념에 대해 어느정도 알고는 있었지만, 막상 다른 사람들에게 Stateless와 Stateful에 대해 설명해달라는 질문을 받았을 때는 어떤 개념인지에 대해 정확하게 설명하기가 힘들었다. 그래서 이번에는 Stateless한 프로토콜을 Stateful한 프로토콜과 비교하며 각각 어떤 특징들을 가지는지 다시 한 번 복습하며 조사해보았다.

 

우선 Stateless프로토콜과 Stateful한 프로토콜은 모두 웹 서버와 브라우저의 통신을 위한 네트워크 프로토콜에 해당한다. 하지만 이 프로토콜들은 서버 사이드에서 세션 및 세부 정보에 대해 추적 및 저장을 하는 지에서 차이가 발생한다. 상호 작용 상태가 얼마나 오래 기록이 되는지, 또 해당 정보가 어떻게 저장되는지가 기준이 된다고 한다.


 ✨ Stateless : 클라이언트-서버 관계에서 서버가 클라이언트의 상태에 대해 추적하거나 보존하지 않음.

  • 상태를 저장하지 않는 프로토콜이기 때문에, 시스템이 링크에 대한 통신과 세션 세부 정보를 추적할 필요가 없고, 리소스 역시 덜 필요하게 된다.
  • stateless 프로토콜은 서버 설계를 단순화할 수 있고, 확장성 역시 더 높다.
  • 각 정보 패킷은 다른 패킷을 참조하지 않고, 자체적으로 이동한다.
  • 각 통신은 선행되거나 후속으로 따라오는 통신과 관련이 없다.
  • HTTP가 stateless 프로토콜의 대표적 예이다.

Stateful : 클라이언트-서버 관계에서 서버가 클라이언트의 상태에 대해 추적하고 저장함.

  • 상태에 대해 저장해야하기 때문에 백업 스토리지가 요구된다.
  • 상태 저장에 대한 요청은 서버 측 상태에 따라 달라지게 된다.
  • stateful 프로토콜 중 대표적인 예는 TCP(전송 제어 프로토콜)로, TCP의 경우 서버가 클라이언트와의 통신 상태를 계속 추적하기 때문에, 클라이언트의 세션 정보에 대해 저장한다.

 


 Stateless vs Stateful

 

  Stateless Stateful
정의 클라이언트가 서버로 요청을 보내고, 주어진 상태에 따라 서버의 응답을 다시 보내주는 네트워크 프로토콜  클라이언트가 서버에 요청을 보냈을 때, 어떤 종류의 응답을 기대하고 만약 응답이 없을 경우에는 다시 요청을 보내는 네트워크 프로토콜
HTTP FTP(파일 전송 프로토콜), TCP
서버 제한 서버 정보나 세션의 세부 정보를 자체적으로 유지하고자 할때 서버가 필요하지 않다. 현재의 상태와 세션 정보를 유지하기 위해서
서버가 필요하다.
의존성 서버와 클라이언트가 느슨한 결합으로 이루어져 있기 때문에, 서로 독립적으로 작동할 수 있다. 상태 저장이 필요하므로 서버와 클라이언트가 밀접하게 연결될 수 밖에 없다.
디자인 서버 설계가 구현하기에 간단하다. 설계 디자인이 복잡하고, 구현하기도 상대적으로 더 어렵다.
충돌 관리 서버 장애가 발생했더라도, 출돌 후 다시 쉽게 시작이 가능하다. 서버가 세션 및 여러 세부 정보들을 유지해야 하기 때문에, 충돌 관리가 더 어렵다.
트랜잭션 서버에서 트랜잭션을 빠르게 처리할 수 있다. 서버가 비교적 느리게 작동한다.

Reference

 

Difference between stateless and stateful protocols

Difference between stateless and stateful protocols Both Stateless and stateful protocols are the network protocols for the web servers and web browsers. These protocols are differentiated based on the server side to save session information. Following are

www.tutorialspoint.com

 

Difference between Stateless and Stateful Protocol - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

반응형

'DEVELOP > Network' 카테고리의 다른 글

[Network] Well-known Port & Port Forwarding  (0) 2021.06.24