해결된 질문
작성
·
313
·
수정됨
0
안녕하세요 해당 강의를 듣고 복습하던 중 의문점이 생겨 질문 드립니다!
getSession()이 세션이 있는 경우에는 해당 세션을 가져오고, 없는 경우에는 새로 생성한다고 하셨는데 세션이 있는지 없는지는 요청에 있는 쿠키의 JSESSIONID 값을 기준으로 판별하는 건가요?
만약 한 사용자가 로그아웃을 하지 않은 상태로 브라우저를 종료하고 다시 로그인을 수행하면, 쿠키가 삭제되어 이전의 JSESSIONID 값이 사라지게 되어서 getSession()이 해당 세션은 없다고 판단하고 새로운 세션을 생성하게 되나요? 타임아웃이 없다고 가정한다면, 세션 저장소에는 같은 사용자에 대한 세션 정보가 여러개 저장되는건가요?
답변 2
1
안녕하세요. 남용님, 공식 서포터즈 코즈위버입니다.
네 JSESSIONID 를 기준으로 판단합니다.
보통 브라우저를 종료하였을 때 쿠키를 바로 삭제하지 않습니다. 그래서 다시 브라우저를 켜면 로그인 상태를 유지합니다. 그러나 브라우저 설정에 따라 브라우저 종료 시 모든 쿠키를 바로 삭제할 수 있으며 이 때에는 재 로그인 과정이 필요합니다. 사용자는 1개의 세션 저장소를 사용합니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
남용님의 질문에 관련하여 도움이 될 수 있는 강의 내용을 찾았습니다. 아래 링크를 참고하시면 세션과 쿠키의 관계, 세션의 생성 및 유지 방법에 대해 자세히 알 수 있습니다.
각 질문에서 세션의 동작 원리와 HttpSession 객체의 사용법, 쿠키의 역할 등에 대한 답변을 확인하실 수 있습니다. 링크 내의 답변을 참고하시면 궁금증을 해결하는데 도움이 될 것입니다.
아하 그러면 서버는 JSESSIONID를 기준으로 여러 개의 세션 저장소를 가지고 있고, 브라우저는 그 중 요청시 쿠키로 전달되는 JSESSIONID에 해당하는 세션 저장소를 사용하는데, 세션이나 쿠키가 만료되어서 재 로그인하거나 최초 로그인 한 경우에는 새로 생성한 JSESSIONID 값을 쿠키로 넘겨줘서 그 값을 이후 요청에 사용한다고 이해하고 넘어가겠습니당 답변 감사합니다!!