개인의 기록
  • 소개
  • 프로젝트
  • 글
  • 링크

© 2026 newgirok

← 글 목록

쿠키 — 브라우저에 저장하는 작은 데이터

2025년 9월 13일
Cookie쿠키

쿠키(Cookie)는 서버가 클라이언트(브라우저)에 저장하는 작은 텍스트 데이터로, HTTP의 무상태성을 보완하는 수단입니다.

쿠키가 필요한 이유

HTTP는 무상태(Stateless) 프로토콜입니다. 서버는 이전 요청을 기억하지 않아 로그인 상태를 유지할 수 없습니다. 쿠키를 사용하면 서버가 브라우저에 정보를 저장하고, 이후 요청마다 자동으로 전송받아 상태를 식별할 수 있습니다.

쿠키 동작 방식

1. 클라이언트 → 서버: 로그인 요청
2. 서버 → 클라이언트: Set-Cookie 헤더로 쿠키 설정
3. 클라이언트 → 서버: 이후 모든 요청에 Cookie 헤더 자동 첨부
Set-Cookie: sessionId=abc123; Path=/; HttpOnly; Secure; SameSite=Strict

쿠키 속성

Expires / Max-Age

설정하지 않으면 세션 쿠키로 동작하여 브라우저 종료 시 삭제됩니다. 설정하면 지정된 시간까지 유지됩니다.

Domain

쿠키를 전송할 도메인 범위를 지정합니다. Domain=example.com 설정 시 하위 도메인(sub.example.com)에도 전송됩니다.

Path

쿠키를 전송할 URL 경로를 제한합니다. Path=/api로 설정하면 /api로 시작하는 경로에만 전송됩니다.

HttpOnly

document.cookie로 쿠키를 읽을 수 없게 합니다. XSS 공격으로 쿠키를 탈취하는 것을 방지합니다. 세션 쿠키에는 반드시 설정해야 합니다.

Secure

HTTPS 연결에서만 쿠키를 전송합니다. HTTP 연결에서는 전송하지 않아 도청을 방지합니다.

SameSite

값동작
Strict같은 사이트에서의 요청에만 전송
Lax안전한 메서드(GET)의 상위 탐색에는 전송
None항상 전송 (Secure 속성 필수)

CSRF 공격 방지를 위해 Strict 또는 Lax로 설정하는 것이 권장됩니다.

쿠키 보안 이슈

XSS (Cross-Site Scripting)

악성 스크립트가 document.cookie로 쿠키를 탈취합니다. HttpOnly 속성으로 방지합니다.

CSRF (Cross-Site Request Forgery)

다른 사이트에서 쿠키를 자동 전송하여 의도하지 않은 요청을 발생시킵니다. SameSite=Strict로 방지합니다.

쿠키 vs localStorage

항목쿠키localStorage
서버 자동 전송예아니오
만료 설정가능없음(영구)
용량4KB5-10MB
접근JS + 서버JS만
← 이전 글CIDR — 클래스 없는 도메인 간 라우팅
다음 글 →DNS — 도메인 네임 시스템