09. Session, cookie, set-cookie

박선규's avatar
Jan 29, 2024
09. Session, cookie, set-cookie
👉
하기 전 꼭 알아야 하는 내용! 분명 “SELECT”는 “GET” 요청이고, “INSERT”, “DELETE”, “UPDATE”는 “POST” 요청이다! 하지만!!!! 유일하게 로그인은 “SELECT”지만! “POST” 요청이다!! 유일하다!! 꼭 기억하자!! (민감함 정보는 바디로 보내기 때문에) 그리고 로그인 페이지로 이동 할 때 만약 만들어져 있으면 “리다이렉션”을 해야한다!!! 모든 이동 할 페이지가 만들어 져 있으면 redirection한다

Session과 Cookie와 Set-Cookie

  • Session 영역에 들어서면 Cookie가 생성된다. → 만약 이미 세션 영역에 들어온 상태라면? 아예 주지 않는다! 그 키를 계속 사용하니깐!
  • 애플리케이션의 Cookies에 세션 키 값이 저장되는 것은 프로토콜이다. → 이를 통해 서버와 클라이언트는 상태를 유지하며 통신이 가능하다.
  • Cookie는 Session ID 외에도 다양한 정보를 저장하지만 주된 목적은 Session 서랍의 식별이다.
  • 쿠키 저장소클라이언트 전용 저장소이다. → JSESSION Key만 저장 → 다시 요청할 때는 HTTP Header에 Cookie라는 Header에 Session Key를 넣는다 → Server는 Session를 가져와서 Session의 서랍을 확인한다.
  • 세션의 서랍서버 전용 저장소이다.
  • 재 로그인시 클라이언트가 쿠키를 들고 서버에게로 가 session의 서랍의 내용과 비교한다.
  • 서랍의 번호가 jsessionid다 내가 set.Attribute에 저장한거는 서랍의 저장돼는 키 네임이다.
그림 설명
notion image

웹 페이지 인증 작동방식(cookie, set-cookie, session)

💡
cookie 클라이언트(웹 브라우저)쪽 값을 회원 가입하고 받은 쿠키(키= 값(세션 식별자))을 저장하는 저장소로도 불리며 session의 저장한 키= 값이 있는 것 을 쿠키라고 도 부른다.
set-cookie Set-Cookie: 쿠키이름=쿠키값; 속성1=값1; 속성2=값2; session 서버(웹 서버)쪽 키 값을 저장하는 저장소
쿠키 값= 말그대로 쿠키의 값이지 클라이언트의 상태가 아니다.
HTTP응답(respense)
Set-Cookie: <이름>=<값> Set-Cookie: <이름>=<값> Set-Cookie: <이름>=<값>
HTTP요청(request)(재 로그인 상황)
Cookie: <이름>=<값>; <이름>=<값>; <이름>=<값>
결론 반이중 통신(state less)을 전이중 통신(state full)인척 하는거 재 로그인시에 서버가 클라이언트에서 온 쿠키를 보고 클라이언트의 상태를 기억한다.

머스테치(Mustache)를 이용한 if문

{{#sessionUser}} {{/sessionUser}} <-- !if --> {{^sessionUser}} {{/sessionUser}} <-- !else -->
👉
머스태치는 리턴으로 부르면 서블릿으로 바뀐다!
Bean → 객체
invoke → 메서드 호출
 
Share article
RSSPowered by inblog