웹 서비스를 개발하다보면 상태 관리를 위해 세션이나 쿠키를 많이 사용하게 된다.
그렇게 서비스가 커지다보면 서브도메인이 많이 생기게 되는데, 모든 서브도메인에서 공통으로 가지는 상태가 생기게 될 것이고, 이를 처리하기 위해 쿠키를 서브도메인들 전체에 대해 공유하도록 만들어야 하는 상황이 발생하게 된다.
각 서브도메인 서비스마다 cookie getter와 setter API를 일일히 만드는 방법도 있겠지만, 서비스의 수가 많아지다보면 일일히 관리하기 어려워지게 되고, 시나리오가 더 복잡해지게 될 것이다.
그렇다면 도메인과 서브도메인 전부에 쿠키를 공유시키는 가장 간단한 방법은 무엇이 있을까?
답은 HTTP 쿠키에 대한 RFC 문서에 있다: https://datatracker.ietf.org/doc/html/rfc6265#section-5.1.3
아래와 같이 domain을 쿠키에 설정하게 되면, 도메인 매칭에 의해 해당 도메인의 서브도메인 전체에 대해 브라우저가 동일한 쿠키를 보내게 된다.
Set-Cookie: name=value; domain=example.com
위의 예제의 경우, example.com 도메인에 대해 domain-match가 쿠키에 설정되게 된다.
따라서, example.com은 물론이고 sub.example.com이나 test.example.com 등 example.com의 모든 서브도메인에 해당 쿠키가 공유되게 된다.
즉, 도메인 매칭이 필요한 쿠키에만 domain 키를 설정하고, 그렇지 않은 쿠키에는 이를 설정하지 않으면 서브도메인 전체 공유되는 쿠키와 그렇지 않은 쿠키를 자동으로 관리할 수 있게 된다.
'Web' 카테고리의 다른 글
크롬 브라우저에서 CORS 끄기 (0) | 2022.03.31 |
---|---|
CORS (Cross Origin Resource Sharing) (0) | 2022.03.23 |
웹 어셈블리 (0) | 2019.08.04 |