상세 컨텐츠

본문 제목

⁉️헷갈리는 세션개념과 동작 순서 끝장내기 (for JWT) 손수 열심히 그림

개발메모

by 개발하는 정복자 2022. 6. 1. 12:20

본문

서론

🌱Spring Security와 JWT를 공부하면서 전에 대충 집고 넘어갔던 세션 동작 과정이 헷갈리기 시작했다. 완전히 끝장 내겠다는 마인드로 다시 공부하기 시작했다. 역시 기본이 제일 중요한것 같다. 절대 나중에 다시 찾아보지 말자!(는 마인드 ㅋ)


세션 사용하는 이유

우리가 로그인 후 블로그를 사용한다고 가정해보자. 메인 페이지, 공지 페이지, 게시글 작성 페이지를 각각 이동할때 마다 서버가 우리를 기억하지 못하고 매번 다시 로그인을 해야한다면 매우 번거로울 것이다. 이때 서버가 우리를 기억하게 해주는 장치로 세션을 사용한다.

 

세션 동작 원리 (손수 다 그림 🥲)

천천히 위 그림을 본후 아래 글을 읽어보면 이해하기 수월할 것이다.

1. 클라이언트가 서버에 요청을 보낸다.

2. 서버는 세션 저장소에 세션을 발행한다.

3. 서버는 Http header에 세션을 담아서 응답한다.

4. 클라이언트는 브라우저 쿠키에 발급받은 세션을 저장한다.

5. 다시 클라이언트가 서버에 요청할 때 Http header에 세션을 담아서 요청한다.

6. 그럼 서버는 세션 저장소에 있는 세션과 클라이언트가 요청한 세션을 검증한다.

 

세션은 언제 사라질까?

1. 세션 시간이 만료 되었을 때 (보통 30분)

2. 사용자가 브라우저를 닫았을 때

3. 서버에서 세션을 지웠을 때


세션과 로그인 인증

천천히 위 그림을 본후 아래 글을 읽어보면 이해하기 수월할 것이다.

1. 클라이언트가 서버에 요청을 보낸다.

2. 서버는 세션 저장소에 세션을 발행한다.

3. 서버는 Http header에 세션을 담아서 응답한다.

4. 클라이언트는 브라우저 쿠키에 발급받은 세션을 저장한다.

5. 다시 클라이언트가 서버에 요청할 때 Http header에 세션을 담아서 로그인 요청한다.

6. 그럼 서버는 DB에 User값을 조회한다.

7. User 가 있으면 세션에 User 값을 저장한다.

8. 다시 Http header에 세션을 담아서 응답한다.

9. 위 과정을 계속 반복한다.

관련글 더보기

댓글 영역