Frontend/HTTP 통신

쿠키(Cookie), 세션(Session), 캐시(Cache)

dddzr 2024. 6. 5. 18:10

쿠키(Cookie), 세션(Session), 캐시(Cache)는 웹 애플리케이션에서 데이터를 저장하고 관리하는 데 사용되는 세 가지 주요 개념입니다.

 

쿠키(Cookie)

쿠키는 클라이언트 측(웹 브라우저)에 저장되는 작은 데이터 파일입니다. 주로 사용자와 웹 서버 간의 상태 정보를 저장하고 유지하는 데 사용됩니다.

  • 저장 위치: 클라이언트(웹 브라우저)
  • 수명: 서버가 설정한 만료 시간까지 지속됨. 만료 시간 없이 설정된 쿠키는 브라우저 세션이 끝나면 삭제됨.
  • 사용 예: 로그인 상태 유지, 사용자 설정 저장, 트래킹 정보 저장
  • 장점: 서버 부담 감소, 사용자의 장치에 데이터 저장 가능
  • 단점: 보안 취약성(쿠키 탈취), 저장 용량 제한(일반적으로 4KB)

 

세션(Session)

세션은 서버 측에서 관리되는 데이터 저장 방식으로, 사용자와 웹 서버 간의 대화 상태를 유지하는 데 사용됩니다. 세션 데이터는 고유한 세션 ID를 통해 식별되며, 이 ID는 클라이언트의 쿠키나 URL 파라미터에 저장됩니다.

  • 저장 위치: 서버
  • 수명: 일정 시간 동안 활동이 없으면 만료됨(예: 30분). 브라우저를 닫으면 세션이 종료될 수 있음.
  • 사용 예: 로그인 상태 유지, 장바구니 정보 저장, 사용자 데이터 저장, 이중화 서버 간 동기화
  • 장점: 보안성 높음, 클라이언트 저장 공간 제한 없음
  • 단점: 서버 메모리 사용 증가, 서버 간 세션 공유 필요

 

캐시(Cache)

캐시는 자주 사용되는 데이터나 연산 결과를 임시로 저장하여 빠르게 접근할 수 있도록 하는 메모리 저장소입니다. 웹 애플리케이션에서 캐시는 주로 클라이언트 측(브라우저 캐시)과 서버 측(애플리케이션 캐시)에서 사용됩니다.

  • 저장 위치: 클라이언트(브라우저) 또는 서버
  • 수명: 캐시 설정에 따라 다름. 특정 시간 이후 만료되거나 수동으로 삭제될 수 있음.
  • 사용 예: 웹 페이지 리소스(CSS, JS, 이미지) 저장, 데이터베이스 쿼리 결과 캐싱, 이중화 서버 간 동기화
  • 장점: 빠른 데이터 접근, 서버 부하 감소, 네트워크 트래픽 감소
  • 단점: 캐시 일관성 문제(변경 사항 반영 지연), 저장 공간 사용

 

비교

특징 쿠시 세션 캐시
저장 위치 클라이언트(브라우저) 서버 클라이언트(브라우저) 또는 서버
수명 설정된 시간까지 일정 시간 동안 활동 없으면 만료 설정된 시간까지
사용 예 로그인 상태 유지, 설정 로그인 상태, 장바구니 정보 웹 리소스, DB 쿼리 결과
장점 서버 부담 감소 보안성 높음 빠른 데이터 접근, 서버 부하 감소
단점 보안 취약성, 용량 제한 서버 메모리 사용 증가 일관성 문제, 저장 공간 사용