Web

Subdomain에 대해 쿠키 공유하도록 설정하기

검정비니 2023. 12. 19. 22:00
728x90
반응형

웹 서비스를 개발하다보면 상태 관리를 위해 세션이나 쿠키를 많이 사용하게 된다.

그렇게 서비스가 커지다보면 서브도메인이 많이 생기게 되는데, 모든 서브도메인에서 공통으로 가지는 상태가 생기게 될 것이고, 이를 처리하기 위해 쿠키를 서브도메인들 전체에 대해 공유하도록 만들어야 하는 상황이 발생하게 된다.

 

각 서브도메인 서비스마다 cookie getter와 setter API를 일일히 만드는 방법도 있겠지만, 서비스의 수가 많아지다보면 일일히 관리하기 어려워지게 되고, 시나리오가 더 복잡해지게 될 것이다.

 

그렇다면 도메인과 서브도메인 전부에 쿠키를 공유시키는 가장 간단한 방법은 무엇이 있을까?

 

답은 HTTP 쿠키에 대한 RFC 문서에 있다: https://datatracker.ietf.org/doc/html/rfc6265#section-5.1.3

 

RFC 6265: HTTP State Management Mechanism

This document defines the HTTP Cookie and Set-Cookie header fields. These header fields can be used by HTTP servers to store state (called cookies) at HTTP user agents, letting the servers maintain a stateful session over the mostly stateless HTTP protocol

datatracker.ietf.org

 

아래와 같이 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