💡개요
위 이미지는 크롬의 개발자 도구에서 조회할 수 있는 쿠키 탭이다.
보다시피 하나의 쿠키에는 많은 요소가 포함될 수 있는데, 각각의 요소의 사용 목적이나 형태에 대해 정리해 보자.
🛠️ Cookie
일단 쿠키의 사용 목적에 대해 짧게 정리해 보면 쿠키는 클라이언트 측에 저장되는 작은 데이터로, 주로 클라이언트가 정보를 보관하거나 서버에 요청을 보낼 때 함께 전송되어 추가적인 정보를 제공하는 데 사용된다.
쿠키에 포함되어 있는 데이터 항목은 다음과 같다.
🍪 Name
쿠키의 이름이다. 클라이언트와 서버는 쿠키의 이름을 토대로 쿠키를 구분한다.
🍪 Value
쿠키에 저장되어 있는 값이다. 주로 토큰이나 세션 ID 같은 값이 보관된다.
🍪 Domain
쿠키가 적용되는 도메인 범위를 나타낸다.
🍪 Path
쿠키가 전송될 URL 경로를 의미한다. 만약 쿠키의 Path가 /board 라면 /board/register나 /board/list, board/detail 등의 경로에는 쿠키가 전송되지만 /member 나 /home과 같은 경로에는 쿠키가 전송되지 않는다.
🍪 Expires / Max-Age
쿠키의 만료 시점을 나타낸다.
🍪 Secure
Secure 항목이 true인 경우 HTTPS 통신의 경우에만 쿠키가 서버에 전송된다.
평문을 그대로 전송하는 HTTP 통신의 경우에 정보 탈취의 위험이 있기 때문에 쿠키가 서버에 전달되지 않는다.
🍪 SameSite
크로스 사이트 요청에서 쿠키 전송 여부를 제어하는 속성이다. CSRF 공격 방지용으로 사용된다.
🍪 Partition Key Site
Partition Key Site는 쿠키가 저장될 때 어떤 1차 사이트(top-level site)에서 생성되었는지를 나타내는 키이다.
즉, 같은 도메인의 쿠키라도 서로 다른 사이트에서 분리된 공간에 저장되도록 만드는 역할을 한다.
만약 여러 사이트에 적용된 ads.example.com 도메인이 있다고 치자. (백준 사이트의 점핏같은 광고 도메인)
그런데 저 광고 도메인은 백준뿐만 아니라 여러 사이트에서 광고로 출력될 수 있다.
그리고 기존에는 제3자(3rd-party) 쿠키가 같은 도메인이면 어떤 사이트에서든 동일한 쿠키를 공유했다.
즉, 서로 다른 사이트가 같은 쿠키를 사용했던 것이다.
이 쿠키를 지닌 채 여러 사이트를 돌아다니면 “몰래 훔쳐보는” 구조가 되는 것이다.
그래서 등장한 게 Partitioned Cookie 이다.
이는 같은 도메인이라도 사이트마다 분리된 스토리지를 가진다.
그렇기 때문에 ads.example.com에서 생성된 쿠키가 같은 ads.example.com 쿠키여도 서로 공유 불가능하다.
- a.com → Partition Key Site = https://a.com
- b.com → Partition Key Site = https://b.com
🍪 Cross Site
쿠키가 현재 크로스 사이트 요청 맥락에서 전송되었는지 여부를 보여준다.
만약 현재 사이트 도메인이 a.com인데, b.com 여게서 전달받은 쿠키를 사용한다면 이 쿠키는 크로스 사이트(Cross-Site) 컨텍스트에서 전송된 것으로 간주된다.
그리고 이는 다른 사이트에서 온 리소스가 해당 쿠키를 전송했다는 의미로, 보안 정책(SameSite), 추적 방지, CSRF 대응 등을 고려할 때 중요한 지표다.
🍪 Priority
브라우저가 저장 공간이 부족할 때, 어떤 쿠키를 먼저 삭제할지 우선순위를 정하는 속성이다.
만약 우선순위가 낮다면 해당 쿠키를 우선적으로 삭제한다.
'개발 일기' 카테고리의 다른 글
[개발 일기] 2025.04.19 - 테이블의 기본키로 VARCHAR? (0) | 2025.04.19 |
---|---|
[개발 일기] 2025.04.18 - DB 복합키 (0) | 2025.04.18 |
[개발 일기] 2025.04.16 - 클래스가 final로 선언되면 내부 필드도 변경이 안될까? (0) | 2025.04.16 |
[개발 일기] 2025.04.15 - 자바 vector (1) | 2025.04.15 |
[개발 일기] 2025.04.14 - 스레드 로컬 (Thread Local) (0) | 2025.04.14 |