HTTP 쿠키
HTTP 쿠키(HTTP cookie)는 웹 서버가 브라우저 등 사용자 에이전트에 저장하도록 지시하고, 이후 요청에서 일정한 조건에 따라 서버로 다시 전달되는 작은 이름·값 데이터다. 상태를 자체적으로 보존하지 않는 HTTP 요청 사이에 연결된 사용자 세션을 구현하는 수단으로 널리 쓰인다...
| 분류 | HTTP 상태 정보 |
|---|---|
| 주요 용도 | 브라우저와 웹 서버 사이의 상태 유지 |
| 관련 기술 | World Wide Web, 웹 브라우저, HTTP, JavaScript |
| 주요 명세 | RFC 10025: Cookies |
HTTP 쿠키(HTTP cookie)는 웹 서버가 브라우저 등 사용자 에이전트에 저장하도록 지시하고, 이후 요청에서 일정한 조건에 따라 서버로 다시 전달되는 작은 이름·값 데이터다. 상태를 자체적으로 보존하지 않는 HTTP 요청 사이에 연결된 사용자 세션을 구현하는 수단으로 널리 쓰인다. 로그인 유지, 장바구니, 사용자 설정과 접근 통계에 활용되지만 쿠키 자체가 특정 인증 기능이나 비밀 정보 보호를 자동으로 제공하지는 않는다.
서버는 응답의 Set-Cookie 헤더로 쿠키 이름과 값, 여러 저장 속성을 전달한다. 브라우저는 지정된 도메인과 경로, 만료 조건을 확인하고 조건을 충족하는 후속 요청에 Cookie 헤더를 포함한다. 쿠키는 여러 HTTP 요청에서 동일한 사용자를 식별하는 단서가 될 수 있지만 실제 계정 권한과 사용자 신원의 검증은 서버가 별도로 수행한다.
Secure 속성은 보안 연결에 대한 전송 조건을, HttpOnly는 일반적인 스크립트 API에서의 접근 제한을 지정한다. SameSite 속성은 서로 다른 사이트를 거치는 요청에서 쿠키를 전송할지를 결정하는 데 관여한다. 이러한 속성은 세션 탈취와 CSRF 공격에 대한 방어를 강화할 수 있지만 애플리케이션의 입력 검증이나 인가 정책을 대신하지 않는다.
쿠키는 세션이 끝날 때 사라지는 세션 쿠키와 만료 시각이 설정된 영속 쿠키로 구분할 수 있다. 제3자 문맥의 쿠키는 추적과 광고 기술에 사용되어 왔으며 브라우저들은 이를 차단하거나 분할 저장하는 개인정보 보호 정책을 채택하고 있다. localStorage와 같은 웹 저장소는 쿠키와 달리 일반적인 HTTP 요청 헤더에 자동으로 포함되지 않는다.
쿠키의 저장과 전송 규칙은 기존 RFC 6265를 발전시킨 새로운 HTTP 상태 관리 표준에서 상세히 다뤄진다. 실제 서버 구현은 호환성 있는 파싱과 쿠키 수·크기 제한, 도메인 검증을 함께 고려해야 한다. 개인정보 보호와 안정적인 인증을 위해 필요한 데이터만 저장하고 쿠키의 사용 범위와 보유 기간을 좁게 설정하는 것이 중요하다.[1]