HTTP 헤더 - 쿠키

Sangyeon·2022년 12월 9일
0

Web

목록 보기
7/7

HTTP 헤더 중에서도 쿠키와 관련된 헤더에 대한 포스팅 입니다.

이 글에서는 쿠키 관련된 HTTP 헤더에 대해서만 다루고, 쿠키 저장소 및 다른 웹 스토리지에 대해서는 별도 포스팅 에서 다룹니다.

Set-Cookie 헤더

클라이언트쪽에 쿠키를 저장하기 위해 서버->클라이언트에 전달하는 쿠키로, 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, expires)

설정에 따라 쿠키 만료 시기가 되면, 쿠키가 삭제됩니다.(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 기준)

도메인(domain) 속성

설정에 따라 명시한 도메인 + 서브 도메인 포함하여 쿠키 접근되고,
도메인 속성을 생략한 경우, 현재 문서 기준 도메인만 쿠키 접근이 가능합니다.

Set-Cookie: domain=.google.com

경로(path) 속성

이 경로를 포함한 하위 경로 페이지만 쿠키 접근할 수 있음을 의미합니다.

Set-Cookie: path=/

Secure 속성

이 속성을 사용하면, https인 경우에만 쿠키를 전송합니다.

HttpOnly 속성

XSS 공격을 방지하기 위한 속성 입니다.
이 속성을 사용하면, document.cookie JS 명령어로 쿠키 값을 접근할 수 없습니다.

SameSite 속성

XSRF 공격을 방지하기 위한 속성입니다.

Set-Cookie: SameSite=none

속성 값 종류

  • strict : 요청 도메인과 쿠키에 설정된 도메인이 같은 경우에만 쿠키 전송
  • lax(default) : 쿠키에 설정된 도메인이 아니어도 GET 요청에 대해서는 쿠키 전송 가능
  • none : 도메인 검증하지 않음

Cookie 헤더

클라이언트->서버에 전달하는 쿠키로, HTTP 요청 헤더에만 사용됩니다.

Cookie: SESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43;

Reference

profile
I'm a constant learner.

0개의 댓글