세션과 쿠키

Haegyeong Kim·2023년 2월 27일
0


1. 서버는 사용자 인증요청이 들어오고 인증 요청이 정상적으로 처리되었을 경우 …
2. 서버 메모리에 session을 만들고 Client의 상태를 저장한다.
3. session_id를 Client Cookie에 저장한다.
4. 그 후 Client 는 session_id를 서버에 전달하고 서버는 주어진 session_id로 서버 메모리에 있는 session을 찾을 수 있다.
5. 최종적으로 찾은 session을 통해서 인증된 사용자를 식별할 수 있다는 점이다.

⚠️ 여기서의 문제점이있다.

세션이 서버 메모리에 저장된다는 점이다. 
따라서 서버에 문제가 발생하게 되면 저장되어있던 세션들이 유실될 수 밖에 없다.

⇒ 해결하는 것이 여러가지 존재한다.
그 중 몇 개가 Session Cluster

Session Cluster

session을 별도의 외부 스토리지에 저장한다는 개념.
session cluster를 도입하는 경우 특정 서버에 문제가 발생해도 해당 서버의 세션이 Session Clsuter 메모리에 복제되어있기 때문에 다른 정상적인 서버에서 Session Cluster를 이용해 정상 처리가능하다.
단점: 별도의 Session Cluster를 구축하고 관리해야하기에 비용, 시간이 들고 Session cluster 메모리에서 장애가 발생할 경우 대규모 장애로 이어질 수 있는 점이있다.
그렇기에 session cluster를 이용할 때는 다수의 서버를 이용해서 구축해야한다. SPOF가 되지 않도록 주의해야한다.

[출처] https://cscie12.dce.harvard.edu/lecture_notes/2007-08/20080423/slide51.html

[출처] https://ignite.apache.org/use-cases/caching/web-session-clustering.html

profile
Computer Science & Engineering

0개의 댓글