728x90
🧭 서버에서의 세션 관리 역할
Spring Boot는 기본적으로 아래와 같은 세션 흐름을 관리합니다.
세션 생성
- 클라이언트 요청 시 세션이 없으면 서버가 새로운 세션 생성
- 응답에
Set-Cookie: JSESSIONID=...
헤더로 세션 ID를 전달
세션 이용
- 이후 요청 시
JSESSIONID
쿠키를 기반으로 세션을 조회하여 해당 사용자 정보 접근
- 이후 요청 시
세션 삭제
- 일정 시간 동안 요청이 없거나, 명시적으로 로그아웃하면 세션 무효화
모든 요청에 대해 서버는 쿠키에서 JSESSIONID를 파싱하여 처리합니다.
⚙️ 세션 관리를 쉽게 해주는 도구: HttpSession
✔️ 특징
- Java Servlet API에서 제공하는 세션 인터페이스
- Spring Boot에서도 그대로 사용 가능
- 세션 ID는 UUID로 생성되며,
JSESSIONID
라는 이름으로 쿠키 설정
💡 코드 예시
@GetMapping("/hello")
public String hello(HttpSession session) {
// 세션에 데이터 저장
session.setAttribute("user", "user1");
// 세션에서 데이터 조회
String username = (String) session.getAttribute("user");
// 세션에서 데이터 제거
session.removeAttribute("user");
return "hello";
}
HttpSession
객체는 컨트롤러 메서드 파라미터에 바로 주입할 수 있으며, Spring Boot가 내부적으로 처리해줍니다.
728x90
'Server' 카테고리의 다른 글
[Redis] Pub/Sub (0) | 2024.03.01 |
---|---|
[Caching] 캐싱의 원리 와 목적 (0) | 2024.02.29 |
Session 이란? (0) | 2024.02.24 |
동시성 제어 (0) | 2024.02.18 |
[낙관적락/Optimistic Lock]_기본 개념 (비관적 락/PESSIMISTIC 짧은 설명 포함) (0) | 2024.02.15 |