HTTP 통신에서 클라이언트의 브라우저에 쿠키(Cookie) 저장소가 있으며 이 곳에 여러 쿠키가 저장되어 있는 상태일 때를 가정하자.
HTTP 요청을 할 때 보내는 데이터는 크게Header와Body로 나눌 수 있다.
쿠키는Header에 포함되어 전송된다.그렇다면 HTTP 요청을 보낼 때마다 필요 여부 상관없이 쿠키 저장소에 있던 모든 쿠키들이 항상 헤더에 담겨 전송되는가?
다음 조건을 모두 만족하는 쿠키들은 매번 통신 헤더에 포함된다.
쿠키의 Domain 속성 값이 현재 요청 도메인과 일치하거나 요청이 하위 도메인에 포함되는 경우
쿠키의 Path 속성 값이 현재 요청 경로와 일치하거나 요청 경로가 하위에 포함될 경우
쿠키의 Secure 속성이 true라면 HTTPS 요청일 경우만 쿠키 전송
SameSite 속성으로 쿠키 전송 컨텍스트 제어 가능
SameSite=Strict: 동일 사이트 요청만 가능SameSite=Lax: 크로스사이트 서브 리소스 요청 에서는 쿠키 전송 xSameSite=None + Secure=true: 크로스사이트 요청시 쿠키 전송 o쿠키의 Expires 또는 Max-Age 속성 값이 만료되지 않은 경우
클라이언트의 브라우저에 여러 쿠키가 저장되어 있는 경우,
요청을 보낼 때 브라우저는 쿠키의 도메인, 경로, 보안 플래그, SameSite 정책, 유효 기간 등의 조건을 검사하여 조건을 만족하는 쿠키들만 HTTP 요청 헤더의 Cookie 헤더에 포함하여 전송한다.따라서, 모든 쿠키가 항상 전송되는 것은 아니지만 조건이 맞는다면 해당하는 모든 쿠키를 전송한다.