사용자는 명시적으로 로그아웃을 하지 않는데, 로그아웃을 했는지 서버는 어떻게 알 수 있을까?

대부분의 사용자는 직접 명시적으로 로그아웃을 누르지 않는다.

보통 웹브라우저를 종료할 뿐인데, HTTP는 비연결성이기에

서버측에서는 클라이언트가 웹 브라우저를 종료했는지 알 수 없다.

그렇기 때문에 세션을 언제 삭제할지 판단하기 어렵다

삭제하기 싫어서 계속해서 유지를 한다면 !??

세션은 기본적으로 메모리에 생성되는데

사용하지 않는 세션이 관리되지 않으면 성능저하가 발생하고,

JSESSIONID를 탈취당한 경우 시간이 흘러도 해당 쿠키로 악용될 수 있다는 문제점이 있으니

어쨌든 삭제는 필요하다! (세션 타임아웃)

이런 이유로 세션 타임아웃이 되어야하는데 종료 시점은 어떻게 설정하는 게 좋을까?

너무 빠르면 계속해서 로그인을 해야하고, 너무 길게 잡으면 위와 같이 문제가 발생한다.

(기본적으로 세션 생성 시점으로부터 30분정도 잡는다고 한다.)

그렇다면 사용자는 30분뒤에 다시 로그인을 해야하는걸까??

–> 아니다, 이런 부분을 해결하기 위해서

사용자가 최근에 요청한 시간을 기준으로 30분정도를 유지하자