SteadyDrills

쿠키(Cookie) 본문

CS

쿠키(Cookie)

Drills 2025. 1. 2. 22:12

250102

 

쿠키(Cookie)란?

쿠키(Cookie)는 웹 사이트가 사용자의 브라우저 측에 저장하는 작은 텍스트 파일로, 웹 브라우저와 웹 서버 간의 상태를 유지하거나 사용자 정보를 저장하기 위해 사용된다.

 

쿠키의 구조

 

<키>-<값> 형태의 단순한 문자열로 구성

Set-Cookie: name=value; 
Expires=Wed, 08 Jan 2024 14:00:00 GMT; 
Domain=example.com; Path=/;
Secure; HttpOnly
  • 쿠키의 구성요소
    1. 이름(name): "name"
    2. 값(value): "value"
    3. 만료 시간(Expires): "Wed, 08 Jan 2024 14:00:00 GMT"
    4. 도메인(Domain): "example.com"
    5. 경로(Path): "/"
    6. 보안 플래그(Secure): HTTPS 연결에서만 전송
    7. HttpOnly 플래그: JavaScript를 통한 접근 방지

 

쿠키의 특징

  1. 작은 크기
    일반적으로 4KB 이하의 데이터
  2. 클라이언트 측 저장
    브라우저에 저장되며 클라이언트가 서버로 요청을 보낼 경우 해당 쿠키도 함께 전송
  3. 유효기간
    쿠키의 종류에 따라 유효기간을 설정가능 ex) 세션쿠키- 브라우저를 닫으면 삭제, 영구 쿠키 - 유효기간 동안 저장
  4. 도메인 및 경로 제한
    특정 도메인과 경로에만 접근 가능하도록 설정할 수 있음.

 

쿠키의 종류

  • 유효 기간에 따른 분류
    • 세션 쿠키
      브라우저를 닫으면 자동으로 삭제되는 임시 쿠키이다. 또한 RAM에 저장되고, 웹사이트 탐색 중에만 사용된다.
    • 영구적 쿠키
      (지속 쿠키) 설정된 만료 날짜까지 컴퓨터에 저장되는 쿠키이며, 사용자 선호 설정이나 자동 로그인 기능에 사용된다
  • 사용 목적에 따른 분류
    • 필수 쿠키
      웹사이트의 기본 기능을 지원하는 데 필요한 쿠키이다.
    • 기능 쿠키
      사용자 설정과 선호도를 기억하는 쿠키이다.
    • 성능 쿠키
      웹사이트의 성능 및 작동 방식 개선을 위해 정보를 수집하는 쿠키이다.
    • 마케팅 쿠키 (타겟팅 쿠키)
      사용자의 웹 활동을 추적하고 개인화된 광고를 제공하기 위한 쿠키이다.
  • 출처에 따른 분류
    • 1차 쿠키(First-party Cookie)
      사용자가 방문한 웹사이트에서 직접 설정한 쿠키로 해당 도메인에서만 접근이 가능하다.
    • 제3자 쿠키(Third-party Cookie)
      사용자가 방문한 웹사이트가 아닌 제3자가 설정한 쿠키로, 주로 광고나 분석 서비스를 통해 생성된다.

 

쿠키의 프로세스

 

쿠키의 한계와 문제점

  • 데이터 크기 제한
    복잡하고 용량이 큰 데이터를 저장하는 방식으로는 적합하지 않음.
  • 보안문제
    쿠키는 네트워크 전송 과정에서 탈취될 수 있어 추가적인 보안 위험이 있다. 또한, 클라이언트 측에 저장되기 때문에 쉽게 변조 가능하며, 사용자의 정보가 해킹에도 취약하다.
  • 프라이버시 침해
    사용자의 웹 검색 내용과 과정이 쿠키에 기록되어 광고회사 등에 의해 무단으로 수집될 수 있다.

 

쿠키의 대안 기술

  • 로컬 스토리지(LocalStorage)
    브라우저 세션이 종료되어도 데이터가 유지된다.
    약 5MB의 데이터를 저장할 수 있어 쿠키(4KB)보다 훨씬 큰 용량을 제공하며,
  • 세션(Session)
    클라이언트와 서버 간에 고유한 세션 ID를 통해 연결한다.
    쿠키와 함께 서버 측 데이터를 저장하는 방식이다. 쿠키의 단점을 보완하기 위해 만들어졌으며,
  • JWT (JSON Web Token)
    사용자 인증 및 정보 전달을 위한 토큰 기반 기술이다. 쿠키와 달리 CORS 문제를 쉽게 해결할 수 있으며, 서명되어 있어 위조가 어렵고, 필요한 정보만 포함할 수 있어 쿠키보다는 안전하다.

*CORS 문제

CORS(Cross-Origin Resource Sharing) 문제는 웹 브라우저의 보안 정책으로 인해 발생하는 이슈이다. 클라이언트가 다른 도메인의 리소스를 요청할 때 서버가 적절한 CORS 헤더를 제공하지 않으면 발생한다. ex) 백엔드와 프론트엔드의 연결

'CS' 카테고리의 다른 글

메모리에 저장 VS 하드에 저장  (0) 2024.12.27
캐싱(Caching)  (0) 2024.12.24
Docker란?  (0) 2024.12.03
RDBMS와 NoSQL의 차이  (2) 2024.12.02
NoSQL  (0) 2024.11.29