포스트

Session

Session

Session

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

세션 유지 시간 설정

1
2
3
4
5
6
7
8
9
10
11
// web.xml에서 유지시간 분 단위로 설정
<session-config>
    <session-timeout>20</session-timeout>
</session-config>

// jsp에서 유지시반 초 단위로 설정
<%
        session.

setMaxInactiveInterval(1800);
%>

세션 아이디를 값으로 갖는 쿠키 파일

  • 톰캣 컨테이너에서 새로운 웹 브라우저가 접속하면 세션 유지를 위해 자동 생성
  • 이 쿠키는 요청을 보낸 웹 브라우저가 현재 연결되어 있는지(세션이 살아 있는지) 확인하는 데 이용

동작 방식

  1. 웹 브라우저가 처음 접속하면 서버(톰캣)는 세션을 새로 생성
  2. 응답 시 세션 아이디를 값으로 갖는 쿠키를 response header에 담아 웹 브라우저에 보냄
  3. 웹 브라우저는 재요청 시마다 쿠키를 request header에 추가하여 보냄
  4. 서버는 request header에 포함된 쿠키로 해당 요청이 기존 세션에서 이어진 것임을 확인
  • 즉 웹브라우저로부터 전달받은 쿠키를 통해 서버는 세션영역에(HTTPSession과 같이) 상태를 유지해야 하는 값들을 저장 가능
  • 웹 브라우저에서 모든 쿠키를 삭제하면 해당 쿠키까지 사라지므로 서버가 새로운 세션을 생성

DB 연동

DTO

  • Data Transfer Object
  • 계층 사이에서 데이터를 교환하기 위해 생성하는 객체
  • 별 다른 로직 없이 속성(멤버 변수)과 그 속성에 접근하기 위한 게터/세터 메서드만 갖춘게 특징
  • 값 객체(Value Object, VO)라고도 함

DAO

  • Data Access Object
  • 데이터베이스의 데이터에 접근하기 위한 객체
  • 보통 JDBC를 통해 구현
  • 하나의 테이블에서 수행할 수 있는 CRUD를 전담

세션과 쿠키의 차이

 쿠키세션
저장 위치/형식클라이언트 PC에 text로 저장웹 서버에 Object 타입으로 저장
보안클라이언트에 저장되므로 보안에 취약서버에 저장되므로 보안에 안전
자원/속도서버 자원을 사용하지 않으므로 세션보다 빠름서버 자원을 사용하므로 쿠키보다 느림
용량용량의 제한이 있음서버가 허용하는 한 제한이 없음
유지 시간쿠키 생성 시 설정
단, 설정된 시간이 경과되면 무조건 삭제
서버의 web.xml에서 설정
설정된 시간 내라도 동작이 있다면 삭제되지 않고 유지
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.