배운 것
세션 개념
내용 정리
세션
- 서로 관련된 요청/응답들을 하나로 묶은 것 (원래 요청은 독립적)
- 요청을 하나로 묶기위해 쿠키를 이용
- 브라우저마다 개별저장소(session)가 만들어짐
- 쿠키는 브라우저에, 세션객체(저장소)는 서버에 저장
브라우저가 요청을 보내면 서버가 세션아이디를 쿠키에 저장해서 브라우저에 전송
브라우저의 다음 요청부터 쿠키가 같이 전송되어지므로 2번째 요청부터 같은 세션
같은 세션아이디라는 공통점이 생김(그룹화)
같은 세션에 포함되어 있는 동안 세션저장소(객체)이용 가능
세션이 끝나면 새로운 세션아이디 발급 (새로운 세션저장소 이용)
세션객체의 생성
- 브라우저가 요청하면 서버가 무조건 세션객체(저장소)를 만듦
- 세션객체마다 세션아이디를 가지고 있음
- 저장소를 쓸 수 있게 세션아이디가 담긴 쿠키를 만들어서 응답으로 브라우저에 보냄
세션의 동작 과정
1. 클라이언트가 서버에 요청한다. (서버에서 세션객체가 만들어진다)
2. 서버는 응답헤더의 쿠키안에 세션아이디를 넣어서 브라우저에 전송한다.
3. 브라우저에 쿠키가 저장되고 해당 서버에 다음 요청부터 쿠키, 세션아이디가 포함되어서 전송된다
4. 서버가 세션아이디를 보고, 같은 브라우저에서 온 요청인지 식별이 가능해진다.
세션 객체 열기
- 쿠키는 브라우저마다 저장된다. 서로 다른 브라우저면 다른 세션아이디를 서버로부터 받아서 저장한다.
- Controller에서 세션저장소를 사용하고 싶으면 request객체에서 얻을 수 있다.
- 요청에 있는 세션아이디와 일치하는 세션 저장소를 찾아 setAttribute하면 해당 세션 저장소에 저장 가능 (사용)
HttpSession session = request.getSession();
session.setAttribute("id", "asdf");
느낀 점 / 보완할 점
어렵고 헷갈린다
뭐가 헷갈리진도 잘 모를만큼 전체적으로 어렵..
자주 보자
잘못된 정보가 있다면 지적 부탁드려요
'아카이브 > 스프링' 카테고리의 다른 글
스파르타 코딩클럽 [ 웹 개발의 봄, Spring ] - 3주차 (0) | 2022.01.05 |
---|---|
스파르타 코딩클럽 [ 웹개발의 봄, Spring ] - 2주차 (0) | 2022.01.02 |
스프링의 정석 (쿠키) (0) | 2021.12.28 |
스프링의 정석 ( redirect / forward ) (0) | 2021.12.28 |
스프링의 정석 ( @GetMapping, @RequestMapping, URL인코딩 ) (0) | 2021.12.27 |