구분 | Cookie | Session |
---|---|---|
저장 위치 | Client | Server |
저장 형식 | Text(문자열) | Object(객체 또는 키-값 형태) |
만료시점 | 쿠키 저장시 설정(default 브라우저 종료 시) | 서버 설정에 따름(기본 30분~24시간, 미활동시 만료) |
리소스 | 클라이언트의 리소스 | 서버의 리소스 |
용량제한 | 한 도메인 당 약 20개, 한 쿠키당 4KB 이하 | 제한없음, 서버 부하 고려 필요 |
저장 위치
- Cookie : 클라이언트의 웹 브라우저가 지정하는 메모리 or 하드디스크
- Session : 서버가 세션 ID를 발급하고, 해당 ID에 매핑된 정보를 서버 메모리나 세션 저장소(Redis, DB 등)에 저장
만료 시점
- Cookie : 저장할 때
Expires
속성,Max-Age
을 정의해 날짜, 시간 정할 수 있음, 설정하지 않으면 세션 쿠키로 간주되어 브라우저 종료시 삭제됨 - Session : 클라이언트가 로그아웃하거나 설정 시간동안 반응이 없으면 무효화되므로 정확한 시점을 알 수 없음
리소스
- Cookie : 클라이언트에 저장되고 클라이언트의 메모리를 사용하기 때문에 서버 자원 사용하지 않음
- Session : 세션은 서버에 저장되고, 서버 메모리로 로딩되므로 세션이 생길 때마다 리소스를 차지함
용량 제한
- Cookie : 클라이언트도 모르게 접속되는 사이트에 의하여 설정될 수 있기 때문에 쿠키로 문제가 발생하는 것을 막고자
- RFC 기준으로 하나의 쿠키는 최대 4096 Bytes, 보통 도메인당 20~50 개 까지 가능
- Session : 클라이언트가 접속하면 서버에 의해 생성되므로 개수나 용량 제한 없음
- 많은 세션 데이터는 서버 부하를 증가 시킬 수 있음
Cookie와 Session의 장단점 비교
Cookie 장점
- 클라이언트에 저장되어 서버 부담 적음
- 유지 기간을 길게 설정 가능 (장기 로그인 등)
- 브라우저 간 데이터 공유 가능 (같은 도메인일 경우)
Cookie 단점
- 클라이언트에 저장되므로 노출 위험 있음
- 데이터 크기 제한 있음
- 사용자가 쿠키를 차단할 수 있음
- Cookie 탈취 문제 : 클라이언트에 저장된 쿠키가 JavaScript 등을 통해 악의적인 사이트에 노출될 수 있음
Session 장점
- 서버에서 관리되므로 상대적으로 보안 우수
- 중요한 정보 클라이언트에 노출되지 않음
- 다양한 데이터 타입 저장 가능 (객체 등)
Session 단점
- 서버 자원 소모 (메모리)
- 서버 재시작 시 세션 유실 가능
- 확장성이 낮을 수 있음 (분산 서버 환경에서 처리 필요)
- 세션 하이재킹 문제 : 공격자가 유효한 세션 ID를 탈취해 다른 사용자로 가장
'Network' 카테고리의 다른 글
[ Web ] 5. REST API (0) | 2025.06.16 |
---|---|
[ Web ] 4. HTTP status code (0) | 2025.06.05 |
[ Web ] 3. HTTP Request Methods (0) | 2025.06.05 |
[ Web ] 1. 브라우저 동작 방법 (0) | 2025.06.04 |
Dark Web (0) | 2025.04.16 |