[tomcat] session-timeout VS cookie-config.max-age

식빵·2022년 8월 23일
0

spring-boot 를 쓰면서 web.xml 을 보는 일이 적어졌는데,
최근 회사에서는 web.xml 을 보면서 복습겸 직접 작성해보는 시간을 가졌다.

그런데 하도 오랜만에 써서 그런걸까...
session-config 설정에서 헷갈리는 부분이 생겼다.
바로 session-timeout 과 max-age 의 차이점이다.
옛날에도 이랬던 거 같은데...😅

<session-config>
  <session-timeout>1</session-timeout> <!-- 분 단위 -->
  <cookie-config>
    <max-age>30</max-age> <!-- 초 단위 -->
  </cookie-config>
</session-config>

헷갈리지 말자. 둘의 차이점은 아래와 같다.

🟢 session-timeout

  • TOMCATJSESSIONID 쿠키값과 매핑된 세션을 서버 내부에 보관한다.
  • 그런데 사용자가 장시간 동안 사이트에서 어떤 것도 안할 때도 세션을 보관하는 건 낭비다.
  • 그래서 TOMCAT일정 주기로 요청에 해당 JSESSIONID 쿠키 정보가 함께오는지를 체크한다.
  • 만약 지정한 주기(위 예제에서는 1분)를 넘기면 session 을 invalidate 시킨다.
  • 하지만 지정한 주기 내에 계속해서 JSESSIONID 쿠키값을 갖는 요청을 보내면 세션을 유지한다.

🟢 max-age

  • 얘는 이름 그대로 JSESSIONID 쿠키의 수명을 의미한다.
  • 이 시간이 지나면, JSESSIONID 는 일반적인 쿠키들과 마찬가지로 브라우저에서 삭제된다.


더 상세한 내용을 보고 싶다면 이 stackoverflow 글을 참고하길 바란다.

profile
백엔드를 계속 배우고 있는 개발자입니다 😊

0개의 댓글