브라우저에서는 보안적인 이유로 cross-origin HTTP 요청들을 제한한다.
그래서 cross-origin 요청을 하려면 서버의 동의가 필요하다.
만약 서버가 동의하면 브라우저는 요청을 수락하고, 서버가 비동의하면 브라우저는 요청을 거절한다.
이러한 허락을 구하고 거절하는 매커니즘은 HTTP-header를 통해서 이루어진다.
이것을 CORS라고 부른다.
즉, 한 출처에서 실행 중인 웹 앱이 다른 '출처'의 특정 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려준다.
접근할 때 사용하는 URL의 프로토콜(스킴), 도메인(호스트) + 포트를 말하는 데, 두 출처의 스킴, 호스트, 포트가 모두 일치하는 경우 같은 출처를 가졌다고 할 수 있다.
서비스가 제공되는 앱의 DB에는 높은 보안이 요구되는 데이터가 쌓여있다.
따라서 출처에 따라 접근을 제한하는 것은 필수적이라고 할 수 있다.