2019-03-14 TIL

2019-03-14

CORS

어떤 웹 사이트나 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 에러를 띄운다.


Minchang Kim
Minchang Kim
웹/앱 개발자 김민창입니다! 좋은 하루 되세요!