Session


  • 서버에 클라이언트 상태 정보를 보관할 때 사용
  • 쿠키는 웹 브라우저에 정보를 보관하고 세션은 서버에 정보를 보관함
  • 서버는 기본적으로 하나의 웹 브라우저마다 한 세션을 생성함
  • 세션이 쿠키보다 보안적으로 더 좋음

세션 생성

<%@ page session="true" %>
  • page 지시자 session 기본값은 true이므로 session 속성을 false로 지정하지 않으면 세션 생성
  • 세션을 사용하는 서버 프로그램은 웹 브라우저가 처음 접속할 때 세션을 생성, 이후 기존에 생성된 세션 사용

세션 아이디를 통한 클라이언트 인증

  • 컨테이너는 브라우저에서 요청이 들어오면 session 객체 생성
  • 세션이 생성되면 session 기본 객체를 통해 세션 사용 가능
  • 브라우저의 고유 식별자 ID를 받아서 같이 식별자를 가진 session 객체가 있으면 해당 객체 가져다 쓰고 없으면 새로 만들어줌
  • session 객체를 계속 보관하고 있다가 유효시간이 지나면 무효화를 시키고 무효화가 되기 전이라면 기존 session 객체가 남아있으므로 이미 인증이 된 클라이언트가 맞는지 구분할 수 있게 됨
  • 새로 생성된 객체는 isNew() 메소드에서 true를 반환하지만 만약 한번이라도 다른 JSP 페이지나 서블릿을 거쳐서 왔다면 이미 세션이 생성된 상태가 되어 false를 반환하게 되므로 사용시 주의!!
  • session 기본 객체는 속성을 제공하므로 setAttribute(), getAttribute() 등의 메서드를 사용하여 속성값을 저장하거나 읽어올 수 있음
  • 세션 ID
    • 웹 브라우저마다 생성되는 별도의 세션을 구분하기 위한 세션 고유 ID
  • JSESSIONID
    • 웹 서버와 웹 브라우저가 세션 ID 공유하기 위해 사용하는 쿠키
    • 웹 서버는 세션 ID 이용해서 웹 브라우저를 위한 세션을 찾음
    • JSESSIONID를 통해 세션 ID 공유
profile
github : https://github.com/kiaeh2323 , email : kiaeh9269@gmail.com

0개의 댓글