로그아웃 핵심
서버측에서 session을 무효화 시켜버리면 서랍의 내용이 날라간다.
세션 저장소 내부
JSESSIONID의 여행
로그아웃 로직 구현
@RequiredArgsConstructor
@Controller
public class UserController {
private final UserRepository userRepository;
private final HttpSession session;
@GetMapping("/logout")
public String logout() {
session.invalidate(); // 서랍 비우기 -> 로그아웃
return "redirect:/";
}
Java
복사
세션과 리퀘스트의 생명주기는 어떻게 되는가??
세션과 리퀘스트의 생명주기는 Tomcat의 스코프랑 연관이 있다.
세션의 생명주기가 무효화 될 때 까지 (3가지) - 응답이 완료되거나, invalidate 되거나, 만료시간이 되었을 때
순서 application >> session >> request 로 짧아진다.
application→ 서버가 시작되고 종료될 때 까지
session→ 클라이언트가 최초로 서버에 접속하여 세션을 생성할 때 부터, 세션이 만료되거나 무효화 될 때 (invalidate)될 때 까지 유지
request→ 클라이언트가 서버에 요청을 보내고, 서버가 클라이언트에게 응답을 보낼 때까지 유지