[ Web ] 2. Cookie & Session

구분 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