본문 바로가기
Web

[Web] 쿠키와 세션의 차이

by 차가운개발 2024. 10. 10.

 

쿠키와 세션은 웹 애플리케이션에서 사용자 데이터를 관리하기 위한 두 가지 방법이다. HTTP 프로토콜의 특성이자 약점을 보완하기 위해 사용된다. 클라이언트와 서버 간의 상태 정보를 저장하고 추적하는데 사용하지만 차이점이 존재하기에 차이점을 살펴본다.

 

ㅇ HTTP 프로토콜의 특성

  • connectionless
    클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어 버린다.
  • stateless
    통신이 끝나면 상태를 유지하지 않는다.

 

ㅇ 쿠키

쿠키는 웹 브라우저에서 클라이언트 측에 저장되는 작은 데이터 파일이다. 서버가 클라이언트에 정보를 저장하고, 요청이 있을 때마다 이 정보를 다시 전달받아 상태를 유지하거나 추적하는데 사용한다.

 

주요 특징

  • 저장 위치
    클라이언트의 브라우저에 저장된다. 
  • 저장 기간
    쿠키는 유효 기간을 설정할 수 있다. 유효 기간을 설정하지 않으면 브라우저가 닫힐 때 삭제된다.
  • 보안성
    사용자의 로컬 장치에 저장되므로 보안에 취약할 수 있다.
  • 데이터 크기 제한
    쿠키는 대게 약 4kb 정도의 데이터를 저장할 수 있다. 브라우저마다 개별 도메인당 저장할 수 있는 쿠키의 수와 용량에 제한이 있다.

 

쿠키의 활용

  • 자동 로그인
    자동으로 로그인 상태를 유지하기 위해 사용
  • 사용자 선호도 저장
    웹사이트의 테마나 언어 설정을 기억해 다음 방문시 동일한 설정을 유지
  • 트래킹
    사용자의 방문 기록을 추적하여 맞춤형 광고를 제공

 

ㅇ 세션

세션은 사용자가 웹 사이트를 탐색하는 동안 서버 측에서 유지되는 상태 정보를 말한다. 서버에서 관리되고 사용자에게는 고유한 세션 ID가 부여되며, 이는 쿠키에 저장되거나 URL 파라미터로 전달된다.

 

주요 특징

  • 저장 위치
    세션 데이터는 서버에 저장되고, 클라이언트는 ID만 가지고 있다.
  • 저장 기간
    세션은 브라우저를 닫으면 만료된다.
  • 보안성
    세션은 쿠키에 비해 보안성이 높다. 클라이언트 측에 중요한 데이터가 저장되지 않고 서버에서 관리되기 때문에 민감한 정보를 안전하게 유지할 수 있다. 세션 하이재킹 공격에 대해서 방어가 필요할 수 있다. SSL암호화나 IP 주소 확인같은 조치를 사용할 수 있다.
  • 데이터 크기 제한
    세션은 서버에 저장되므로 데이터의 크기에 제한이 거의 없다. 다만 서버 리소스를 사용하는 것을 고려해야 한다.

 

세션의 활용

  • 로그인 정보 유지
    사용자가 로그인을 하면 세션을 통해 인증 정보를 유지하고, 로그아웃 하거나 브라우저가 종료될 때 세션이 종료된다.
  • 장바구니 기능
    구매할 상품을 장바구니에 담을 때 세션을 사용하여 정보를 유지한다.

 

구분 쿠키 세션
저장 위치 클라이언트  웹 서버
저장 형식 text Object
만료 시점 유효시간 설정 가능 브라우저 종료 시 삭제
사용 자원 클라이언트 리소스 서버 리소스
크기 제한 하나 당 4kb 도메인 당 20개 총 300개 서버가 허용하는 한 제한없음
속도 세션보다 빠름 쿠키보다 느림
보안 세션보다 안좋음 쿠키보다 좋음

 

'Web' 카테고리의 다른 글

[Web] Web과 WAS의 차이  (0) 2024.11.27
[Web] REST API  (1) 2024.11.27
[Web] HTTP Status Code  (0) 2024.11.27
[Web] HTTP Request Method  (1) 2024.11.27
CS Cache(캐시)  (1) 2024.10.10