웹은 기본적으로 상태를 기억하지 못하는 stateless 구조라서 로그인 상태나 사용자 정보를 저장하려면 쿠키와 세션 같은 방법이 필요하다.
쿠키와 세션이 필요한 이유
- 웹은 기본적으로 상태 저장 불가 (stateless)
- 로그인 상태 유지, 사용자 식별 같은 기능을 위해 쿠키와 세션으로 상태를 저장하는 구조를 사용
쿠키 or 세션 ?
- 쿠키 : 브라우저에 저장 -> 간단한 정보, 자동 로그인, 장바구니 등에 사용
- 세션 : 서버에 저장 -> 로그인 상태, 인증 처리에 사용 (보안 ↑)
쿠키란 ?
- 브라우저에 저장되는 작은 데이터 조각
- 서버가 쿠키를 내려주면 브라우저는 요청마다 쿠키를 자동으로 서버에 같이 보낸다.
- 로그인 정보, 사용자 설정, 장바구니 같은 간단한 정보 저장에 사용
쿠키 특징
- 저장 위치 : 브라우저
- 저장 크기 : 4KB 제한
- 유효 기간 설정 가능 (예 : 7일)
- 보안 : 클라이언트에 저장되므로 XSS 공격에 취약
XSS란? 웹사이트에 악성 스크립트를 심어서 사용자 브라우저에서 실행시키는 공격 - 요청마다 자동으로 서버에 전송됨
세션이란 ?
- 서버에서 사용자 상태를 저장
- 클라이언트는 쿠키에 세션 ID만 저장하고 서버가 이 ID로 사용자 구분
- 로그인 상태 유지, 사용자 인증 관리에 주로 사용
세션 특징
- 저장 위치 : 서버
- 클라이언트는 세션 ID만 쿠키로 들고 다님
- 브라우저 종료 시 기본적으로 삭제 (세션 만료)
- 보안 : 쿠키보다 상대적으로 안전 (데이터는 서버에 있음)
쿠키 vs 세션 비교
| 구분 | 쿠키 (브라우저 저장) | 세션 (서버 저장) |
| 저장 위치 | 브라우저 | 서버 |
| 저장 내용 | 로그인 정보, 사용자 설정 | 로그인 상태, 사용자 인증 정보 |
| 만료 시점 | 유효 기간 설정 | 브라우저 종료 시 기본 삭제 |
| 특징 | 요청마다 자동 전송, XSS 위험 | 세션 ID만 쿠키에 저장, 서버 메모리 사용 |
| 사용 예 | 자동 로그인, 장바구니 등 | 로그인 상태 유지, 인증 처리 |
'CS 공부' 카테고리의 다른 글
| TCP와 UDP 개념 및 차이점 , 예시 (0) | 2025.06.02 |
|---|---|
| DNS, IP, 포트, TCP, 3-Way Handshake까지 네트워크 흐름 정리 (1) | 2025.05.29 |
| 요청과 응답의 흐름 (0) | 2025.05.27 |
| 브라우저의 동작 원리 (0) | 2025.05.26 |
| HTTP 와 HTTPS (0) | 2025.05.26 |