Max-Age
- cookie가 유효한 기간을 설정한다.
- 초 단위이다.
- 0이나 음수로 설정되면 즉시 cookie가 만료된다.
- 어떤 cookie에
Expires
와 Max-Age
가 모두 설정되어 있을 경우 Max-Age
가 우선적으로 적용된다.
Expires
Name=Value; Expires=Tues, 6 Feb 2024 00:00:00 GMT
HttpOnly
- Browser JavaScript에서의 cookie 접근을 허용할 것인지의 여부를 결정한다.
HttpOnly
가 설정되어 있을 경우 Browser JavaScript에서 document.cookie
등으로 쿠키에 접근할 수 없다.
Path
- cookie를 전송할 수 있는 url path를 제한한다.
- path가 설정되면 해당 path의 subpath까지도 허용한다.
Name=Value; Path=/docs
# OK
/docs
/docs/
/docs/web/
# NOPE
/
/docsets/
/fr/docs
Domain
- 서버가 브라우저에 쿠키를 내려줄 때, 해당 쿠키를 어떤 도메인과 통신할 때 사용하여야 하는지를 제한하는 설정
- 서버는 현재 서버의 도메인 혹은 그 상위 도메인만을 지정할 수 있다.
- 다른 도메인을 지정할 경우
Set-Cookie
Header는 무시된다.
- 생략할 경우 현재 서버의 도메인으로 지정된다.
Secure
Secure
설정을 한 cookie는 https 요청을 통해서만 전달된다.
SameSite
- 사용자가 다른 사이트에 접속해서 내 사이트(cookie를 발급한)로 ajax, script src, image src, iframe 등의 요청을 보낼 때, 발급한 cookie를 요청에 포함시킬 수 있게 할지의 여부를 결정한다.
None
, Strict
, Lax
3가지의 옵션이 있다.
None
- 크로스 사이트 요청 시에도 항상 해당 cookie를 포함하여 전송한다.
- 기존에는
SameSite
옵션이 없었기 때문에 기본값이 None
이었으나, 최근 대부분의 브라우저에서 옵션 기본값으로 Lax
를 채택하고 있다.
Strict
- 크로스 사이트 요청 시에는 항상 해당 cookie를 전송하지 않는다.
Lax
- 몇 가지 예외 케이스를 제외하고는 크로스 사이트 요청 시 해당 cookie를 전송하지 않는다.
- 안전한 HTTP Method(
GET
, OPTIONS
와 같이 멱등성 보장)를 통해, Top-Level Naviagtion(<a>
, window.location.replace
, 302 Redirect
등)을 통해 이동할 때
Reference