해결된 질문
작성
·
517
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
영속 쿠키처럼 만료 날짜가 다 돼서 쿠키가 삭제되면 로그아웃이 이루어져야 할 텐데 어떻게 로그아웃을 요청하고, 서버에서 세션이 삭제되나요?
만료 날짜가 지난 후에 접근하면 다시 로그인 화면이 뜨는 건가요?
일정 시간 동안 아무런 요청이 없으면 세션이 만료되었다고 뜨면서 자동 로그아웃 되는 웹 사이트는 어떻게 동작하는 것인지 궁금합니다.
예) 화면에 '로그인 남은 시간 : 00:30'과 같이 출력되고 요청(서비스 이용)하면 다시 30:00으로 계속 초기화 되는 웹 사이트
브라우저 설정에서 인위적으로 해당 도메인에 관련된 쿠키를 삭제하면 세션id가 포함된 쿠키도 삭제돼서 결과적으로 로그인이 필요한 url에 접근하면 새로운 로그인 창이 뜨고, 홈 화면으로 새로고침하면 로그인이 끊어진 처음 화면이 나오는데 그럼 어떻게 로그아웃이 처리되고 서버는 브라우저에서 삭제된 쿠키의 세션id와 일치하는 관련된 세션 정보를 삭제하나요?(단순히 정상적으로 로그아웃 하는 경우와 달라서 궁금합니다)
답변 1
1
안녕하세요. CS님
쿠키가 사라지면 서버에 요청할 대 쿠키 없이 요청하게 됩니다. 따라서 서버에서는 로그인하지 않은 사용자로 인식합니다.
클라이언트에서 서버에 주기적으로 별도의 요청을 호출합니다. ajax 같은 요청으로 이해하시면 됩니다.
클라이언트가 웹 브라우저를 종료하거나, 쿠키를 삭제해도 서버는 그것을 알 방법이 없습니다. 대신에 서버에서는 세션 타임아웃이라는 개념이 존재합니다. 특정 시간동안 해당 세션에 맞는 쿠키(세션키라고도 합니다)의 요청이 없으면 세션도 서버에서 제거됩니다.
해당 부분을 MVC2 강의에서 실제 구현해보면서 이해할 수 있습니다.
감사합니다.