세션 관리의 다양한 방법

Code_Builder·2024년 8월 8일
0
post-thumbnail

HttpSession

WebApplication에서 Client 의 상태를 관리하기 위한 객체

기본적으로 HTTP 요청은 상태가 없는(stateless) 프로토콜이므로 사용자가 웹 애플리케이션을 사용할 때마다 자신의 정보를 서버에 전달해야 함

이때, 서버는 사용자의 브라우저에 응답을 보내면서 특정 데이터를 저장하도록 요구할 수 있습니다. 이 과정에서 사용되는 것이 바로 쿠키입니다. 쿠키는 클라이언트가 서버를 식별하고 세션 정보를 유지하는 데 도움을 줌

HttpSession은 쿠키를 사용하여 클라이언트의 상태를 유지하고 관리하는 중요한 역할을 함

JSESSIONID

서버 내부의 Tomcat이 처음 접근한 브라우저에게 발급하는 쿠키

JSESSIONID는 쿠키 삭제 혹은 서버 재시작(서버 메모리에 저장된 세션정보 초기화)을 하게되면
사라질수 있음

이러한 한계를 극복하고자 Sticky Session을 대안으로 사용함

Sticky Session

클라이언트와 서버 간의 연결을 유지하여 동일한 클라이언트 요청이 항상 동일한 서버로 전달 되도록 하는 방식

Sticky Session은 특정 서버에 요청이 집중되어 장애가 발생 할수도 있으며 그로 인해 세션 정보가 유실 될 위험도 있음

이러한 큰 단점을 보완하고자 Session Clustering을 사용

Session Clustering

여러 서버 간에 세션 정보를 공유하고 동기화하여
특정 서버에 장애가 발생하더라도 세션 정보가 유지 되도록 하는 방식

세션정보를 여러 서버간에 동기화해야 함에 따라 시스템의 복잡도가 증가하고 성능이 저하됨에 따라 네트워크 지연이 발생 할 수있는 단점이 있지만 동기화로 인한 정보 유실이 없음

profile
사소한일에도 최선을 다하기

0개의 댓글

관련 채용 정보