TIL: 2024/06/27 - Http 요청에 쿠키가 포함되는 조건

White 와잇·2024년 6월 27일

TIL

목록 보기
40/40
post-thumbnail

궁금증

HTTP 통신에서 클라이언트의 브라우저에 쿠키(Cookie) 저장소가 있으며 이 곳에 여러 쿠키가 저장되어 있는 상태일 때를 가정하자.
HTTP 요청을 할 때 보내는 데이터는 크게 HeaderBody로 나눌 수 있다.
쿠키는 Header에 포함되어 전송된다.

그렇다면 HTTP 요청을 보낼 때마다 필요 여부 상관없이 쿠키 저장소에 있던 모든 쿠키들이 항상 헤더에 담겨 전송되는가?

쿠키가 HTTP 요청에 포함되는 조건

다음 조건을 모두 만족하는 쿠키들은 매번 통신 헤더에 포함된다.

1. 도메인 매칭

쿠키의 Domain 속성 값이 현재 요청 도메인과 일치하거나 요청이 하위 도메인에 포함되는 경우

2. 경로 매칭

쿠키의 Path 속성 값이 현재 요청 경로와 일치하거나 요청 경로가 하위에 포함될 경우

3. 보안 플래그 (Secure)

쿠키의 Secure 속성이 true라면 HTTPS 요청일 경우만 쿠키 전송

4. SameSite 정책

SameSite 속성으로 쿠키 전송 컨텍스트 제어 가능

  • SameSite=Strict: 동일 사이트 요청만 가능
  • SameSite=Lax: 크로스사이트 서브 리소스 요청 에서는 쿠키 전송 x
  • SameSite=None + Secure=true: 크로스사이트 요청시 쿠키 전송 o

5. 기간 유효

쿠키의 Expires 또는 Max-Age 속성 값이 만료되지 않은 경우

결론

클라이언트의 브라우저에 여러 쿠키가 저장되어 있는 경우,
요청을 보낼 때 브라우저는 쿠키의 도메인, 경로, 보안 플래그, SameSite 정책, 유효 기간 등의 조건을 검사하여 조건을 만족하는 쿠키들만 HTTP 요청 헤더의 Cookie 헤더에 포함하여 전송한다.

따라서, 모든 쿠키가 항상 전송되는 것은 아니지만 조건이 맞는다면 해당하는 모든 쿠키를 전송한다.

profile
웹개발 도전! 데브옵스 도전!

0개의 댓글