세션(Session)

Jimin·2022년 11월 4일
0

스프링 - fastcampus

목록 보기
12/21

세션이란?

서로 관련된 요청들(HTTP transactions)을 하나로 묶은 것 - 쿠키를 이용

  • browser마다 개별 저장소(session 객체)를 서버에서 제공
  • browser:session = 1:1
  • cookie는 browser에 저장한다.
  • session은 server에 저장한다.

세션 ID가 쿠키에 포함되어 요청들을 그룹화한다.


세션의 생성 과정

  1. 브라우저의 요청
  2. 서버가 무조건 session 객체를 만든다.
    sessionID가 담긴 쿠키를 브라우저로 보낸다.
  3. 브라우저에 쿠키가 저장된다.
  4. 요청될때마다 쿠키가 전달된다.

세션 객체 얻기

세션은 브라우저마다 저장되므로 같은 컴퓨터이어도, 다른 브라우저라면 다른 세션아이디를 서버로 붙어 받아 저장하고 있는다.

HttpSession session = request.getSession();
session.setAttribute("id", "asdf");

세션의 종료

수동 종료

HttpSession session = request.getSession();
session.invalidate(); // 1. 세션을 즉시 종료
session.setMaxInactiveInterval(30*60); // 2. 예약 종료(30분후)

자동 종료 - web.xml

<session-config>
  <session-timeout>30</session-timeout>
</session-config>

쿠키 vs. 세션

쿠키(Cookie)세션(HttpSession)
브라우저에 저장서버에 저장
서버 부담X서버 부담O
보안에 불리보안에 유리
서버 다중화에 유리서버 다중화에 불리

session = "true" or session="false"

  1. session = "true"
  2. session="false"
    • 세션이 필요 없는 JSP인 경우
    1. 기존 세션에 영향 X (연결 끊는 것 X)
profile
https://github.com/Dingadung

0개의 댓글

관련 채용 정보