작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
489
2
세션 만들기
//로그인 성공 처리
//세션이 있으면 있는 세션 반환, 없으면 신규 세션 생성
HttpSession session = request.getSession();
//세션 로그인 회원 정보 보관
session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);
세션 지우기
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate();
}
세션 확인하기
HttpSession session = request.getSession(false);
if (session == null) {
return "home";
}
세션 만들기에서는 session.setAttribute 로 정보를 저장도 했다가, 지우기 혹은 확인하기에서는 쿠키의 역할을 하는 것 같은데 session은 쿠키 + 쿠키저장소(SessionManager의 HashMap) 두 역할을 모두 하는 건가요 ?
그게 아니라 session은 cookie와 같다면 서버 내부적으로 어디에 저장돼서 어떻게 확인할 수 있는 건지 궁금합니다.
답변 1
1
안녕하세요. hjemsti님, 공식 서포터즈 OMG입니다.
세션과 쿠키는 다른 개념입니다.
서버는 쿠키를 생성하고, 클라이언트에게 전송하여 저장하며, 이후 해당 쿠키를 다시 서버로 전송하여 사용자를 인증하거나 사용자의 설정 등을 가져오는 데 활용됩니다.
영한님의 강의자료를 참고해주세요
(처음 로그인 요청을 POST로 보내고, 이후 페이지 이동 시 쿠키를 전송)
반면 세션은 서버 측에서 유지되는 사용자 정보를 저장하는 메커니즘으로 서버는 보통 세션 정보를 메모리나 메모리에서 관리하던 세션 정보를 꺼내 필요에 의해 데이터베이스 등에 저장하기도 합니다.
감사합니다.
아 넵 쿠키는 클라이언트 측에서 저장하고 세션은 서버측에서 저장한다는 내용은 알고 있는데요 request 로 부터 getSession을 통해 얻는 것이 무엇인지가 궁금합니다.
request.getSessin()을 통해 얻는다는 것은 사용자의 요청으로부터 얻은 Session이고 여기에 setAttribute 하는 것은 서버에 데이터를 저장하는게 아니지 않나요 ??