쿠키(Cookie) 종합 가이드
쿠키(Cookie)는 웹 서버가 사용자의 브라우저에 저장하는 작은 텍스트 데이터 파일입니다. HTTP의 '상태 없음(Stateless)' 특성을 극복하고 사용자를 식별하기 위한 도구로 사용됩니다.
1. 쿠키의 주요 기능
- 세션 관리: 로그인 상태 유지, 장바구니 정보 저장 등.
- 개인화: 사용자 설정(언어, 다크모드, 팝업 다시 보지 않기 등) 기억.
- 트래킹: 사용자의 행동을 분석하여 맞춤형 광고 제공.
2. 로그인 시 쿠키의 작동 프로세스
- 인증 요청: 사용자가 아이디/비밀번호로 로그인을 시도합니다.
- 세션 생성 및 쿠키 발급: 서버는 정보를 확인한 후, 서버 메모리에 세션을 생성하고 그에 해당하는 세션 ID를 쿠키에 담아 브라우저로 보냅니다.
- 예:
Set-Cookie: session_id=abc12345; HttpOnly; Secure
- 예:
- 쿠키 저장: 브라우저는 해당 쿠키를 로컬 저장소에 저장합니다.
- 자동 제출: 이후 사용자가 웹사이트 내 다른 페이지로 이동할 때마다, 브라우저는 해당 쿠키를 HTTP 헤더에 담아 서버에 자동으로 전송합니다.
- 상태 유지: 서버는 쿠키의 세션 ID를 확인하여 매번 로그인할 필요 없이 서비스를 이용하게 해줍니다.
3. 보안 설정 (Attributes)
로그인 쿠키는 민감하므로 아래 설정이 필수입니다. * HttpOnly: 자바스크립트를 통한 쿠키 접근을 차단하여 XSS 공격 방어. * Secure: HTTPS 연결에서만 쿠키가 전송되도록 설정. * SameSite: CSRF(사이트 간 요청 위조) 공격을 방어하기 위한 설정 (Lax, Strict, None).
4. 쿠키 vs 로컬 스토리지
| 특징 | 쿠키 (Cookie) | 로컬 스토리지 (Local Storage) |
|---|---|---|
| 용량 | 작음 (약 4KB) | 큼 (약 5MB+) |
| 자동 전송 | 서버 요청 시마다 자동 포함 | 자동 전송 안 됨 (직접 처리 필요) |
| 만료일 | 설정 가능 (만료 시 삭제) | 영구적 (직접 삭제 전까지 유지) |