본문 바로가기
CS

세션(Session)

by 코딩맛집 2022. 10. 20.

HTTP 기반으로 동작하는 클라이언트가 서버에 정보를 요청할 때 생성되는 "상태 정보"를 세션이라고 합니다. 세션은 HttpSession이라는 인터페이스 객체로 표현되며, HttpSession 객체는 HttpServletRequest의 getSession()이나 getSession(true) 메소드를 이용하여 생성할 수 있습니다.

 

HttpSession 객체가 생성될 때는 요청을 보내온 클라이언트 정보, 요청 시간 정보 등을 조합한 세션 ID가 부여되며, 이 세션 ID는 클라이언트 측에 쿠키 기술로 저장됩니다. HttpSession객체는 서버에 생성되며, 클라이언트에는 세션 ID가 쿠키 기술로 저장되어 각 클라이언트에 대하여 생성되는 HttpSession 객체를 클라이언트마다 개별적으로 유지 및 관리합니다.

 

클라이언트마다 개별적으로 생성되어 유지되는 HttpSession 객체는 요청을 보내온 클라이언트와 서버간에 일정 시간(최대 시간은 브라우저가 살아 있는 동안) 동안 각 클라이언트의 상태정보를 서버에 저장하여 유지하고자 하는 목적으로 사용되는 객체입니다. HttpSession 객체가 활용되는 예를 보면 쇼핑몰 사이트의 장바구니 기능, 로그인 또는 로그아웃처럼 사용자 인증 처리를 하는 경우입니다. 그리고 클라이언트마다 상태정보를 일정 시간 동안 개별적으로 유지하여 사용하는 기술을 '세션 트래킹'이라고 합니다.

 

세션 트래킹 기능의 구현 순서는 다음과 같습니다.

1. 클라이언트를 위한 세션을 준비한다. 이전에 이 클라이언트를 위해 생성된 세션이 이미 존재하면 존재하는 세션을 추출하고, 그렇지 않으면 새로 생성한다. 세션이 새로 생성될 때는 고유한 ID가 하나 부여되며, 이 ID는 클라이언트에 쿠키 기술로 저장된다.

2. 유지하고자 하는 정보를 저장할 목적의 객체를 생성하여 세션에 등록한다. 

3. 클라이언트가 요청을 전달할 때마다 세션에 등록된 정보를 담고 있는 객체를 추출하여 원하는 기능에 사용한다.

4. 세션이 더 이상 필요없는 시점에서 세션을 삭제한다.

 

'CS' 카테고리의 다른 글

[URI] URI와 웹 브라우저 요청 흐름  (0) 2022.11.20
SDK, API 개념과 차이점  (0) 2022.11.08
쿠키  (0) 2022.10.20
IP & TCP/UDP & PORT & DNS  (2) 2022.10.08