- 쿠키는 결국 브라우저가 서버 대신 기억해주는 작은 메모지이다. HTTP 자체는 요청과 응답 사이에 기억핮디 못하여서 서버가 클라이언트에게 쪽지를 주는 거죠
- 기본 개념
- 웹 서버가 브라우저에 저장시키는 작은 데이터
- 브라우저 내부
- 서버가 Set-Cookie 헤더로 내려주면, 브라우저는 같은 도메인으로 다시 요청할 때 Cookie 헤더에 자동 첨부
- 특징
- 서버가 클라이언트 상태를 간접적으로 기억할 수 있게 해줌
- 요청마다 자동 전송되므로 개발자가 일일히 붙일 필요 없음
- 도메인, 경로(path), 만료시간, 보안 옵션 등 다양한 속성을 가짐
- 장점
- 자동 관리: 로그인 세션 같은 걸 브라우저가 알아서 들고 다님
- 모든 브라우저/웹 환경에서 기본적으로 지원
- 보안 플래그(HttpOnly, Secure, SameSite)
- 단점
- 용량 제한
- 보안 위험
- xss에 노출되면 쿠키가 털릴 수 있음 (그래서 HttpOnly 권장)
- 세션 쿠키는 탈취 시 게정 하이재킹 가능
- 세션 ID를 쿠키에 담아두면 서버가 그 세션 데이터를 관리해야 하므로 확장성 문제가 생김