<세션>
세션은 서버 측에서 관리되는 사용자 상태 정보이고, 클라이언트가 서버에 접속하는 동안 특정 사용자에 대한 정보를 유지하는 방법을 제공한다. 스프링부트에서는 주로 HttpSession을 사용하여 세션을 관리한다.
동작과정
- 사용자가 웹 애플리케이션에 처음 접속하면 서버는 고유한 세션 ID를 생성하여 클라이언트에 전달한다.
- 클라이언트는 이 세션 ID를 쿠키에 저장하고, 이후 서버로 요청을 보낼 때마다 해당 세션 ID를 포함시킨다.
- 서버는 이 세션 ID를 사용하여 클라이언트의 상태 정보를 저장하고 관리한다.
특징
- 저장소: 세션 정보는 서버의 메모리, 데이터베이스 또는 분산 캐시 시스템(Redis 등)에 저장될 수 있다.
- 만료 시간: 세션에도 만료 시간이 있으며, 설정된 시간 동안 클라이언트의 요청이 없으면 세션이 만료된다.
- 확장성: 분산 환경에서 세션을 관리하기 위해 세션 복제 또는 중앙 집중식 저장소를 사용할 수 있다.
<쿠키>
쿠키는 서버가 클라이언트(웹 브라우저)에 저장하는 작은 데이터 조각이다. 쿠키는 주로 사용자 상태 정보를 저장하고 관리하는 데 사용된다.
동작과정
- 서버에서 Set-Cookie HTTP 헤더를 사용하여 클라이언트에 쿠키를 설정한다.
- 클라이언트는 설정된 쿠키를 로컬에 저장하고, 이후 같은 도메인으로 요청을 보낼 때 해당 쿠키를 Cookie HTTP 헤더에 포함시켜 서버로 전송한다.
특징
- 만료 시간: 쿠키는 만료 시간을 가질 수 있으며, 만료 시간이 지나면 브라우저는 쿠키를 자동으로 삭제한다.
- 경로: 특정 경로에서만 쿠키를 사용할 수 있도록 설정할 수 있다.
- 보안: Secure 플래그를 설정하면 HTTPS 연결에서만 쿠키가 전송된다.
- HTTPOnly: 이 플래그를 설정하면 자바스크립트에서 쿠키에 접근할 수 없다.
'Spring' 카테고리의 다른 글
GDSC TUK 스프링부트 3주차 (0) | 2024.05.20 |
---|---|
GDSC TUK 스프링부트 2주차 (0) | 2024.05.13 |
GDSC TUK 스프링부트 1주차 (0) | 2024.05.13 |