CS/네트워크

[네트워크] 쿠키와 세션 차이(Cookie & Session)

Heeyeon Choi 2024. 10. 30. 13:42
728x90

쿠키(Cookie)

  1. 개념: 쿠키는 클라이언트(사용자의 브라우저)에 저장되는 작은 텍스트 파일입니다.
  2. 저장 위치: 클라이언트(브라우저) 측에 저장됩니다.
  3. 생명 주기: 만료 날짜를 설정할 수 있어 일정 기간 동안 유지됩니다. 영구 쿠키(만료 날짜가 설정됨)와 세션 쿠키(브라우저 종료 시 삭제)로 나뉩니다.
  4. 보안: 클라이언트에 저장되므로 보안에 취약할 수 있으며, 중요한 정보를 저장하기에는 위험합니다. HTTPS로 전송하거나, HttpOnly, Secure 옵션을 설정하여 보안을 강화할 수 있습니다.
  5. 용도: 자동 로그인, 사용자 설정 저장, 방문자 추적 등 상태 정보를 간단히 저장할 때 사용됩니다.

쿠키 예시

Set-Cookie: userID=1234; Expires=Wed, 21 Oct 2025 07:28:00 GMT; Path=/
 

세션(Session)

  1. 개념: 세션은 서버 측에 사용자 정보를 저장하여 사용자의 상태를 유지하는 방식입니다.
  2. 저장 위치: 서버에 저장되며, 각 클라이언트는 고유한 세션 ID를 부여받아 서버와의 연결을 식별합니다.
  3. 생명 주기: 세션은 일반적으로 브라우저를 종료하면 만료되며, 서버에 일정 시간 동안 유지됩니다. 서버에 설정된 세션 만료 시간에 따라 자동으로 삭제될 수 있습니다.
  4. 보안: 쿠키보다 상대적으로 보안이 높지만, 세션 ID가 쿠키에 저장되므로 세션 하이재킹(Session Hijacking) 공격에 취약할 수 있습니다.
  5. 용도: 로그인 상태 유지, 사용자 활동 추적, 장바구니 정보 저장 등 보안이 필요한 정보를 저장할 때 사용됩니다.

쿠키와 세션의 주요 차이점

구분쿠키(Cookie)세션(Session)

저장 위치 클라이언트(브라우저) 서버
생명 주기 설정된 만료 날짜까지, 브라우저 종료 시 삭제 가능 브라우저 종료 시 삭제, 서버에 설정된 시간에 따라 유지
보안성 보안에 취약, 민감 정보 저장에 부적합 비교적 안전하지만 세션 ID 탈취 가능성 있음
용량 제한 약 4KB 서버 설정에 따라 제한
사용 예시 자동 로그인, 사용자 설정, 방문 기록 저장 로그인 상태, 장바구니, 사용자 활동 추적

쿠키와 세션의 동작 방식

  1. 쿠키: 서버는 클라이언트에 특정 정보를 쿠키로 저장하고, 이후 클라이언트가 해당 사이트에 접속할 때마다 쿠키를 서버로 전송합니다.
  2. 세션: 서버는 클라이언트에 고유한 세션 ID를 부여하고, 클라이언트는 이 세션 ID를 쿠키에 저장하여 서버와 통신할 때마다 전송합니다. 서버는 세션 ID로 클라이언트를 식별하여 데이터를 유지합니다.

결론

  • 쿠키는 클라이언트에 간단한 정보를 저장하여, 서버의 부담을 줄이고 빠르게 접근할 수 있도록 하는 데 유리합니다.
  • 세션은 서버에 중요한 정보를 저장하여 보안이 중요한 상황에서 활용합니다.
728x90