ksouth9

세션(Session) 본문

Web/JSP

세션(Session)

ksouth9 2022. 5. 9. 23:40

세션(Session)


클라이언트가 웹 브라우저를 통해 서버에 접속한 후 용무를 처리하고 웹 브라우저를 닫아 서버와의 접속을 종료하는 하나의 단위를 세션이라고 한다. 즉, 세션은 클라이언트가 서버에 접속해 있는 동안 그 상태를 유지하는 것이 목적이다.

  • 설정된 유지 시간 동안 아무런 동작이 없다면 세션은 소멸된다. 하지만 동작이 있다면 계속 유지된다.
  • 세션 영역은 다른 페이지와도 공유되므로 클라이언트별 상태 정보를 관리하기에 아주 유용한 수단이다.
  • JSP에서 클라이언트의 상태 정보를 저장하는 방법은 쿠키과 세션이 있다.
  • 쿠키는 상태 정보를 클라이언트 PC에 저장한다.
  • 세션은 상태 정보를 서버에 저장한다.
  • 보안 측면에서 크게 중요하지 않은 정보는 쿠키를, 보안이 중요한 정보는 세션을 사용하여 저장한다.

유지 시간 설정


세션은 웹 브라우저를 실행할 때마다 새롭게 생성된다. 이렇게 생성된 세션은 설정된 유지 시간동안 유지되며, 유지 시간이 만료되기 전에 새로운 요청이 들어오면 수명이 계속 연장된다. 그리고 만료 때까지 클라이언트가 아무런 요청을 하지 않거나 웹 브라우저를 닫으면 삭제된다.

 

세션의 유지 시간을 설정하는 방법은 /WEB-INF/web.xml 에서 설정하는 방법, session 내장 객체가 제공하는 setMaxInactiveInterval()을 사용하는 방법이 있다.

 

 /WEB-INF/web.xml에서 설정하는 방법

<session-config>
	<session-timeout>20</session-timeout>
</session-config>

web.xml 에서는 유지 시간을 분 단위로 설정한다.

 

setMaxInactiveInterval()을 사용하는 방법

<%
session.setMaxInactiveInterval(1800);
%>

이 메서드의 시간 단위는 초 단위로 설정한다.