개발/HTTP

쿠키(Cookie)와 세션(Session)

함수형 인간 2025. 3. 13. 05:24

쿠키 (Cookie)

  • 정의: 웹사이트가 사용자의 컴퓨터(브라우저)에 저장하는 작은 텍스트 파일(key - value 한 쌍).
  • 목적: 사용자 식별, 설정 저장, 광고 타겟팅 등 다양한 목적으로 사용.
  • 종류:
    • 세션 쿠키: 브라우저 종료 시 삭제. (임시 정보 저장)
    • 영속 쿠키: 지정된 만료일까지 유지. (장기 정보 저장)
  • 장점: 간단하게 구현 가능, 서버 부하 감소.
  • 단점: 용량 제한 (4KB), 보안 취약 (클라이언트에 저장되므로 탈취 위험), 개인정보 침해 우려.

세션 (Session)

  • 정의: 사용자가 웹사이트에 접속해 있는 동안 서버에 유지되는 정보.
  • 목적: 로그인 상태 유지, 장바구니 관리 등 사용자별 상태 정보를 관리.
  • 동작 방식:
    1. 사용자 접속 시 서버가 고유한 세션 ID를 생성하여 할당.
    2. 세션 ID는 주로 쿠키(세션 쿠키)를 통해 클라이언트에 전달.
    3. 서버는 세션 ID를 키로 사용하여 세션 정보를 저장.
    4. 사용자는 요청 시 세션 ID를 서버에 보내고, 서버는 이를 통해 세션 정보를 사용.
  • 장점: 쿠키보다 보안 우수 (서버에 정보 저장), 더 많은 정보 저장 가능.
  • 단점: 서버 부하 증가 (사용자 수에 따라), 여러 서버 환경에서 세션 관리 복잡.

핵심 차이점 요약

특징쿠키세션
저장 위치 클라이언트 (브라우저) 서버
보안 상대적으로 취약 (탈취 위험) 상대적으로 안전
용량 제한적 (4KB) 서버 용량에 따라 다름
수명 세션 쿠키: 브라우저 종료 시, 영속 쿠키: 설정된 만료일까지 브라우저 종료, 로그아웃, 서버 설정된 만료 시간 등
주요 사용 사용자 식별, 설정 저장, 광고 타겟팅, 세션 ID 전달 로그인 상태 유지, 장바구니 관리, 사용자별 데이터 관리