크로스 도메인에서 쿠키 사용방법과 Set-Cookie 정리

크로스 도메인 Ajax요청 시 쿠키 사용방법

브라우저는 크로스 도메인 Ajax(XMLHttpRequest)요청시 응답에서 Set-Cookie항목은 무시합니다.
그래서 http://www.service.com에서 http://api.service.com 요청시 쿠기 생성이 되지 않습니다.
쿠키를 사용 하려면 withCredentials=true 옵션을 설정하면 되고 Javascript로 쿠키에 접근은 되지 않습니다.
1개의 도메인만 사용할 경우 withCredentials 옵션은 아무런 영향이 없습니다

1
2
3
4
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://example.com/', true);
xhr.withCredentials = true;
xhr.send(null);

쿠키를 생성 하려면 HTTP Response Header에서 Set-Cookie 설정을 해주면 됩니다.
가장 기본적인 Set-Cookie 설정은 아래와 같으며 각 요소를 ; 으로 구분합니다.

1
Set-Cookie: sessionid=38afes7a8; HttpOnly; Path=/
  • Domain = domain-value
    생략시 현재 도메인으로 지정되며 해당 도멘인 이외의 요청에서는 쿠키가 서버로 전송되지 않습니다.

  • Path = path-value
    URL 경로를 지정하며 하위 디렉토리까지 쿠키를 서보로 전송합니다.

  • HttpOnly
    위의 요소를 적용하면 Javascript(Document.cookie)로 쿠키에 접근할 수 없습니다.

  • Secure
    SSL 요청시에만 쿠키가 서버로 전송 됩니다.

Resource