Spring

29. 세션(session)/이론 - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2025. 2. 10. 17:58

1. 세션이란?

  • 서로 관련된 요청, 응답 들을 하나로 묶은 것 - 쿠키(브라우저에 저장)를 이용
  • 요청은 독립적이고 관계가 없다.
  • browser마다 개별 저장소(session객체)를 서버에서 제공

  • 수동 종료
HttpSession session = request.getSession();
session.invalidate();			// 1. 세션을 즉시 종료
session.setMaxInactiveInterval(30*60);	// 2. 예약 종료(30분 후)
  • 자동 종료 - web.xml
<session-config> // 분단위
    <session-timeout>30</session-timeout>
</session-config>

 

2. 쿠키 vs 세션

  • 처음에는 요청에 쿠키가 없다. - 서버에서 쿠키 응답

  • 두번째 요청시 쿠키가 요청에 생긴것을 볼 수 있다.

  • 쿠키차단시 쿠키가 생성되지 않는다.

  • 대신 요청URL뒤에 쿠키ID가 추가된다.
<form action="<c:url value='/login/login'/>" method="post" onsubmit="return formCheck(this);">
    <h3 id="title">Login</h3>
    <div id="msg">
  • <c:url value='/login/login'/> - 세션 아이디 자동 추가
  • 브라우저가 쿠키를 허용하지 않을 수 있기 때문에 URL에 세션아이디를 보내는 방식과 쿠키를 추가하는방식 두가지를 서버에서 보내준다. 
  • 쿠키 허용하지 않을시 모든 요청 뒤에 세션아이디를 붙여주게된다.