'Session'에 해당되는 글 1건

  1. 2008.07.20 stateless한 web에서 세션이란?
JAVA Servlet2008. 7. 20. 21:05

서버는 굉장히 휘발성이 강하다. 사실 웹에서의 서버는 어떠한 수행을 한번 하고 나면 이전 상태를 기억하지 못하는 stateless한 방식이다. 따라서 서버는 브라우저에서 전달해온 request객체들의 정보를 저장하지 않고, 대안으로 session이라는 것에 세션 아이디와 정보를 저장하여 실행하게 된다.

최초 서버에 서블릿을 호출하면 해당 객체들이 new로 생성하고 이후에 destroy할 때(서버가 종료)까지는 새로운 생성 없이 쓰레드만 생성하여 실행을 한다.

서버 개발은 보통은 MVC모델로서 비지니스 로직은 Model, 서블릿은 Control, 화면에 출력하는 JSP는 view에 해당한다.

* 과정
최초 리퀘스트가 발생하면 서버는 세션을 우선 찾고 없을시 세션객체를 만든다. 그때 세션의 아이디(유니크한..)를 부여한다. 그리고 응답할때 아이디를 같이 실어서 보낸다. 이후 또 리퀘스트가 일어날 때 브라우저는 아이디를 보낸다. 서버는 세션 아이디를 검색하여 있으면 같은 비지니스 로직을 사용한다.

사용자 삽입 이미지

* 리퀘스트 객체는 최초 실행되고나면 사라진다. 이후는 세션에 저장된 값들로 처리된다.
* 브라우저가 새로 뜨면 새로운 리퀘스트가 날아가고 세션이 생성된다.

세션은 한번 실행한 브라우저에서 다시 호출이 발생하면 세션에 담겨진 정보를 보내어 처리하도록 하는 것이다. 이 세션은 보통 30분 정도의 수명을 가지는데 바꾸고 싶을 때는 프로젝트의 web.xml에서 다음과 같이 설정한다.
<!-- Session Live Time : 60분 -->
<session-config>
<session-timeout>60</session-timeout>
</session-config>








Posted by 버터백통