Spring

session, Session의 동작 순서, Session 사용 코드

Vagins 2021. 8. 7. 16:42

2021.08.07

공모전 제출용 프로젝트 진행 중입니다. 로그인 기능 구현을 해봤는데 session을 통해 로그인 정보를 저장하게 했습니다.

 

 

1. Session이란

 

Session이란 클라이언트와 웹서버 간의 네트워크 통신이 이루어질때 클라이언트가 누구인지 식별할때 사용합니다.

클라이언트가 서버로 요청을 할 때 서버는 session id를 판단하여 사용자가 누구인지 판단합니다. 

session의 장점을 설명하겠습니다.

session이 유지되면 클라이언트를 계속해서 구분 할 수 있습니다. 즉, 각 클라이언트에게 고유 ID를 부여합니다.

사용자 정보는 클라이언트 쪽이 아닌 서버 쪽에 두어서 보안적인 면에서 쿠키보다 우수합니다.

세션 만료의 시간을 두어 서버에서 설정한 시간만큼 미동작시 세션을 만료시키는 방법을 사용할 수 있습니다. 

단점도 있습니다.

사용자가 너무 많을 경우 서버의 메모리를 많이 차지해 서버 성능을 저하 시킬 수 있습니다.

 

 

 

2. Session의 동작 순서

 

1) 클라이언트가 서버에 접속하면 session id를 발급합니다.

2) 서버에서 받은 session id를 사용자 브라우저의 쿠키에 저장하여 갖고 있게 합니다.

3) 클라이언트가 요청을 할 경우 session id를 같이 서버에 전달합니다.

4) 서버는 session id를 판별해 클라이언트가 누구인지 구별합니다.

 

 

 

3. Session 사용 코드

 

// httpsession으로 아래 함수를 통해 값 선언합니다.

HttpSession session = request.getSession();

// setattribute를 사용해 값을 "Session" 이라는 변수에 저장합니다.

session.setAttribute("session", 값);

// invalidate() 함수로 현재 session을 지웁니다.

session.invalidate();

 

 

 

 

 

'Spring' 카테고리의 다른 글

Spring EL, 내장객체, 표현법  (0) 2021.08.13
Spring Model, Model 객체  (0) 2021.08.11
Tiles, dependency  (0) 2021.08.07
spring mybatis, mapper  (0) 2021.08.05
spring responsebody, get/post mapping  (0) 2021.08.04