CORS (Cross-Origin Resource Sharing) - 교차 출처 리소스 공유

<aside> 💡 다른 출처의 자원을 공유할 수 있도록 설정하는 권한 체제를 말합니다.

</aside>

브라우저에서는 보안적인 이유로 cross-origin HTTP 요청들을 제한합니다. 그래서 cross-origin 요청을 하려면 서버의 동의가 필요합니다. 만약 서버가 동의한다면 브라우저에서는 요청을 허락하고, 동의하지 않는다면 브라우저에서 거절합니다.

이러한 허락을 구하고 거절하는 메커니즘을 HTTP-header를 이용해서 가능한데, 이를 CORS(Cross-Origin Resource Sharing)라고 부릅니다.

그래서 브라우저에서 cross-origin 요청을 안전하게 할 수 있도록 하는 메커니즘입니다.

CORS 이해 전 필요한 개념

SOP

SOP는 Same Origin Policy를 뜻한다.

Same Origin Policy란? 2011년 RFC 6454에서 등장한 보안 정책으로 동일한 출처의 Origin만 리소스를 공유할 수 있다. 를 의미한다.

Origin은 아래와 같은 구성으로 이루어져 있다.

이 중에 하나라도 구성이 다르면 SOP 정책에 걸리기 때문에 클라이언트 서버에서 리소스서버에 요청을 보낼 수 없게 된다.

http://www.example.com/dir/page.html에 요청을 보낼 때 예시입니다.

Untitled

Access-Control-Allow-Origin

이 Access-Control-Allow-Origin은 바로 CORS를 해결할 수 있는 고마운 녀석이다.