✔️ Stateful과 Stateless
Stateful이란?
- 서버와 클라이언트 간 세션 상태에 기반하여 클라이언트에 응답을 보내게 됨
- 이를 위해 서버는 세션 상태를 포함한 클라이언트와의 세션 정보를 저장하게 됨
- 예) TCP의 3-way-handshake로 세션 상태를 established한 상태로 만들어 클라이언트와 서버가 데이터를 주고 받음
그러므로 TCP는 세션 상태에 따라 서버의 응답이 달라지는 Stateful 프로토콜 - 만약 로드밸런스를 사용할 경우 세션 정보가 저장된 서버를 향해서만 요청이 유지되도록 관리가 필요
Stateless란?
- 서버의 응답이 클라이언트와의 세션 상태와 독립적
- 서버는 단순히 요청이 오면 응답을 보내는 역할만 수행하며, 세션 관리는 클라이언트에게 책임이 있음
- 그러므로 서버는 클라이언트와의 세션 정보를 기억할 필요가 없으므로 이 정보를 서버에 저장하지 않음
- 예) UDP와 HTTP는 세션 상태와 상관 없이 단순히 데이터그램을 출발지에서 도착지로 전송하고
모든 데이터가 수신되었는지 확인하지 않음 - 로드밸런서를 사용하더라도 세션 정보가 필요 없으므로 특정 서버에 대해서만 요청이 가도록 유지하거나 관리할 필요가 없음
이로 인해 세션 관리나 세션 정보를 옮겨주는 등의 부수적인 관리가 요구되지 않으므로 스케일링이 자유로워지게 되는 큰 장점
'Tech Interview > Network' 카테고리의 다른 글
[Network] 암호화 (0) | 2024.01.27 |
---|---|
[Network] Socket (0) | 2024.01.24 |
[Network] REST (0) | 2024.01.24 |
[Network] 웹 통신의 큰 흐름 (0) | 2024.01.24 |
[Network] DNS (0) | 2024.01.23 |