2019-03-14
어떤 웹 사이트나 JS 코드에서 GET 혹은 POST 등 HTTP 요청을 보낼 때, request header의 origin 항목에는 이 요청의 근원지가 들어간다.
origin : http://request-originnated-from-this-site.com
즉, 브라우저의 주소창에 떠있는 주소의 base url이 origin에 들어간다.
이 요청을 받는 서버는 헤더에 담긴 origin 값을 보고, 이 요청이 우리 서버 도메인에서 온 것인지 확인한다.
정확히는 응답 헤더에 CORS 허용된 도메인을 담아 되돌려준다. (맞지? CORS 에러 여부는 브라우저에서 판단하니까)
응답을 받은 브라우저는 요청을 날린 현재 페이지의 도메인이 서버로부터 온 응답 헤더의 CORS 허용된 범위에 포함되는지 확인한다.
같은 도메인이라면 CORS에러가 나지 않으며, 도메인이 서로 다르더라도 서버에서 허용한 도메인인 경우(혹은 *로 모두 허용한 경우) CORS 에러가 나지 않는다.
다시 말해, 서버가 허용하지 않는 도메인에서 요청한 것으로 확인되면 브라우저는 CORS 에러를 띄운다.