# 쿠키 옵션
###### tags: `tech sharing`
### secure
- secure를 설정하면 https 가 아닌 통신에는 브라우저는 쿠키를 보내지 않는다.
### httponly
- httponly옵션을 true로 설정하면 브라우저에서 쿠키에 접근을 할 수없다.
### samesite
- samesite의 기준 : target's URI's origin's registrable domain 과 request's client's "site for cookies" 가 정확히 일치하거나 request 가 client 를 갖지 않을 때
1. TLD(top level domain)
TLD + 0 레벨(public suffix)에 해당하는 도메인들은 [link](https://publicsuffix.org/list/public_suffix_list.dat) 에서 관리하는데
예를 들어 "com", "github.io", "co.kr” 이 있다.
TLD + 0 레벨은 마지막 dot(.) 기준 오른쪽 문자열이 아니다.
2. registrable domain 은 TLD + 1 레벨의 도메인이다.
ex) https://www.example.com 에서 public suffix 은 "com", registrable domain 은 "example.com"
#### 결론 : Set-Cookie Domain 의 registrable domain 과 브라우저 주소창 URI 의 registrable domain 이 정확하게 일치할 경우 SameSite 이다.
- 07버전부터는 Scheme(http, https) 까지 같아야 sameSite이다.
1. SameSite=Strict
모든 cross-site subresource requests, cross-site nested navigations 상황에서 쿠키 생성 및 전달을 허용하지 않는다.
여기서 subresource requests 는 html 파일 안에서 js, css, img 등의 리소스 가져올 때를 말한다. navigation 개념도 중요한데 이는 다른 옵션에서 자세하게 설명하겠다.
2. SameSite=None
반드시 secure 속성이 함께 추가되어야 동작한다. 즉 HTTPS 만 가능하다.
3. SameSite=Lax
top-level navigations(which use a safe HTTP method) 일 경우에만 cross-site 상황에서 쿠키 생성 및 전달을 허용한다.
먼저 safe HTTP method 는 "GET", "HEAD", "OPTIONS", and "TRACE" 이다(RFC7231).