🍪 쿠키 동작 과정
쿠키는 브라우저(클라이언트)에 저장되는 작은 데이터입니다. 서버가 응답 시 Set-Cookie 헤더로 전달하고, 이후 모든 요청에 자동으로 포함됩니다.
🍪 쿠키 동작 과정 진행
📁 브라우저 쿠키 저장소
(저장된 쿠키 없음)
1. 서버가 쿠키를 준다
서버가 응답 시 Set-Cookie 헤더로 쿠키를 브라우저에 전달합니다.
이게 무슨 뜻이야? (비유/예시)
(동작 로그가 여기에 표시됩니다)
🗄️ 세션 동작 과정
세션은 서버에 저장되는 사용자별 데이터입니다. 클라이언트는 세션ID(쿠키)를 통해 서버의 세션에 접근합니다.
🗄️ 세션 동작 과정 진행
🗄️ 서버 세션 저장소
(저장된 세션 없음)
1. 로그인 시 세션 생성
사용자가 로그인하면 서버는 고유한 세션 ID를 생성하고 서버 메모리나 DB에 저장합니다.
이게 무슨 뜻이야? (비유/예시)
(동작 로그가 여기에 표시됩니다)
🔄 쿠키 vs 세션 비교
구분 | 쿠키 | 세션 |
---|---|---|
저장 위치 | 클라이언트(브라우저) | 서버 |
보안성 | 낮음 | 높음 |
용량 제한 | 4KB 내외 | 서버 메모리/DB |
만료/삭제 | 클라이언트가 직접 | 서버가 관리 |
데이터 접근 | JavaScript로 접근 가능 | 서버에서만 접근 가능 |
📝 쿠키/세션 동작
쿠키 동작 과정
- 서버가 쿠키 설정: 서버가 Set-Cookie 헤더로 쿠키를 브라우저에 전달
- 브라우저가 쿠키 저장: 브라우저가 쿠키를 로컬 저장소에 저장
- 요청 시 쿠키 자동 전송: 같은 도메인 요청 시 쿠키가 자동으로 포함됨
- 쿠키 만료/삭제: 만료 시간 도달 또는 사용자가 삭제
세션 동작 과정
- 로그인 시 세션 생성: 서버가 고유한 세션 ID 생성 및 저장
- 세션 데이터 저장: 사용자 정보, 로그인 상태 등을 세션에 저장
- 요청 시 세션 확인: 클라이언트 요청 시 세션 ID로 인증 확인
- 세션 만료/삭제: 로그아웃 시 서버에서 세션 삭제
인증 플로우 진행해보기
쿠키/세션 없이 로그인하면, 상태가 유지되지 않아 요청마다 다시 인증해야 합니다.
🖥️ 브라우저
로그인: X
쿠키: (없음)
➡️
🗄️ 서버
세션: (없음)
(동작 로그가 여기에 표시됩니다)
❓ 왜 로그인해도 상태가 유지되지 않을까요?
쿠키나 세션이 없으면, 로그인 성공 후에도 로그인했다는 사실이 브라우저나 서버에 저장되지 않아요.
그래서 새로고침하거나, 다음 요청을 보낼 때 서버는 "이 사용자가 로그인한 적이 있는지" 전혀 알 수 없습니다.
즉, 매번 다시 로그인해야 하는 불편함이 생깁니다.
실제 서비스에서는 반드시 쿠키나 세션 등으로 로그인 상태를 저장합니다!
쿠키나 세션이 없으면, 로그인 성공 후에도 로그인했다는 사실이 브라우저나 서버에 저장되지 않아요.
그래서 새로고침하거나, 다음 요청을 보낼 때 서버는 "이 사용자가 로그인한 적이 있는지" 전혀 알 수 없습니다.
즉, 매번 다시 로그인해야 하는 불편함이 생깁니다.
실제 서비스에서는 반드시 쿠키나 세션 등으로 로그인 상태를 저장합니다!
추후 글 생성