HTTP는 상태를 저장하지 않는(stateless) 프로토콜입니다.
즉, 클라이언트가 매번 요청할 때마다 이전 요청의 정보를 기억하지 않습니다.
이를 보완하기 위해 세션(Session)을 사용한 인증 방식이 존재합니다.
세션(Session)
- 클라이언트와 서버 간의 연결이 유지되는 논리적 상태를 의미합니다.
- 클라이언트에 대한 정보를 서버에 저장하여, 로그인 상태 등을 유지할 수 있게 해줍니다.
세션 ID
- 클라이언트를 식별하기 위한 고유한 식별자 (UUID)입니다.
- 서버에 저장되며, 클라이언트는 이 세션 ID를 쿠키(Cookie)에 담아 가지고 있게 됩니다.
세션 기반 로그인 프로세스
- 사용자가 로그인 요청을 보냄.
- 서버는 사용자의 인증 정보(아이디/비밀번호 등)를 확인하고 세션 ID를 생성.
- 생성된 세션 ID를 서버에 저장하고, 이를 쿠키에 담아 클라이언트로 전송.
- 이후 클라이언트는 요청 시 쿠키에 담긴 세션 ID를 함께 전송.
- 서버는 받은 세션 ID를 기반으로 사용자를 식별하고 응답 처리.
특징
- 세션 정보는 서버에 저장되므로 보안성이 높음.
- 하지만 서버에 세션 정보를 유지해야 하므로, 사용자가 많아질수록 서버 부담 증가.
- 일반적으로 세션은 로그아웃하거나 일정 시간이 지나면 만료됨.
'ZeroBase > CS' 카테고리의 다른 글
| HTTP메서드 GET, POST 차이 (1) | 2025.07.28 |
|---|---|
| 토큰 기반 로그인 방식 (0) | 2025.07.26 |
| 로컬스토리지, 세션스토리지, 쿠키의 공통점과 차이점 (1) | 2025.07.25 |
| 웹 브라우저 캐시(쿠키) (1) | 2025.07.23 |
| 웹 브라우저 캐시(세션 스토리지) (0) | 2025.07.23 |