Stateful 세션 정보를 활용해서 이전 요청과 현재 요청이 연결 → 클라이언트의 상태를 서버 또는 시스템이 지속적으로 유지함.
Stateless 각 요청이 독립적으로 처리되며, 이전 요청과 관계없이 새로운 요청으로 간주됨 → 서버가 클라이언트의 상태를 유지하지 않음.
HTTP: Stateless 프로토콜 HTTP가 Stateless 프로토콜이라는 것은, 각 요청이 독립적이며 서버가 이전 요청의 정보를 저장하지 않는다는 의미한다. 즉, 클라이언트가 서버에 요청을 보낼 때마다 서버는 그 요청이 처음 온 요청인지, 이전 요청과 관련이 있는지 알지 못한다.
장점:
클라이언트의 상태를 유지하지 않으면 서버는 모든 요청을 독립적으로 처리할 수 있어 서버의 부하 분산이 쉬워진다. → 확정성
요청 간 상태를 저장하지 않으므로 복잡한 (서버 메모리나 데이터베이스에서)세션 관리가 필요 없다. → 단순성, 리소스 절약
Stateless한 웹 애플리케이션에서 사용자 상태 유지 방법
세션 관리 일반적으로 클라이언트는 세션 ID(Session ID)를 쿠키나 URL을 통해 전달하며, 서버는 해당 세션 ID에 대한 정보를 유지한다.
토큰 기반 인증 사용자가 로그인하면 토큰을 발급하여 클라이언트에 저장 → 이후 요청마다 클라이언트가 사용자의 정보를 포함한 토큰을 서버에 전달