HTTP 헤더 중에서도 쿠키와 관련된 헤더에 대한 포스팅 입니다.
이 글에서는 쿠키 관련된 HTTP 헤더에 대해서만 다루고, 쿠키 저장소 및 다른 웹 스토리지에 대해서는 별도 포스팅 에서 다룹니다.
클라이언트쪽에 쿠키를 저장하기 위해 서버->클라이언트에 전달하는 쿠키로, HTTP 응답 헤더에만 사용됩니다.
아래 예시는 구글 사이트에 접속했을 시의 응답 결과에서 Set-Cookie
헤더 값입니다.
Set-Cookie: 1P_JAR=2022-12-11-06; expires=Tue, 10-Jan-2023 06:15:27 GMT; path=/; domain=.google.com; Secure; SameSite=none
설정에 따라 쿠키 만료 시기가 되면, 쿠키가 삭제됩니다.(max-age
속성의 경우, 0이나 음수를 지정하면 쿠키가 삭제됩니다.)
만약 max-age
, expires
속성이 모두 설정된 경우, max-age
속성 값을 우선시합니다.
Set-Cookie: max-age=2592000 # 초 단위
Set-Cookie: expires=Tue, 10-Jan-2023 06:15:27 GMT # 날짜 표기(GMT 기준)
설정에 따라 명시한 도메인 + 서브 도메인 포함하여 쿠키 접근되고,
도메인 속성을 생략한 경우, 현재 문서 기준 도메인만 쿠키 접근이 가능합니다.
Set-Cookie: domain=.google.com
이 경로를 포함한 하위 경로 페이지만 쿠키 접근할 수 있음을 의미합니다.
Set-Cookie: path=/
이 속성을 사용하면, https인 경우에만 쿠키를 전송합니다.
XSS 공격을 방지하기 위한 속성 입니다.
이 속성을 사용하면, document.cookie
JS 명령어로 쿠키 값을 접근할 수 없습니다.
XSRF 공격을 방지하기 위한 속성입니다.
Set-Cookie: SameSite=none
strict
: 요청 도메인과 쿠키에 설정된 도메인이 같은 경우에만 쿠키 전송lax
(default) : 쿠키에 설정된 도메인이 아니어도 GET 요청에 대해서는 쿠키 전송 가능none
: 도메인 검증하지 않음클라이언트->서버에 전달하는 쿠키로, HTTP 요청 헤더에만 사용됩니다.
Cookie: SESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43;