추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이
다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제
웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요청을 실행한다.
보안 상의 이유로, 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한한다.
예를 들어, XMLHttpRequest와 Fetch API는 동일 출처 정책을 따르기에,
이 API를 사용하는 웹 애플리케이션은 자신의 출처와 동일한 리소스만 불러올 수 있으며,
다른 출처의 리소스를 불러오려면 그 출처에서 올바른 CORS 헤더를 포함한 응답을 반환해야 한다.
CORS 체제는 브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원하며,
최신 브라우저는 XMLHttpRequest 또는 Fetch와 같은 API에서 CORS를 사용하여
교차 출처 HTTP 요청의 위험을 완화한다.
SOP(Same Origin Policy, 동일 출처 정책)라는 브라우저의 기본적인 보안 관련정책에 의해 브라우저에서는 같은 Origin 내에서만 HTTP 요청을 주고 받을 수 있다.
이러한 이유로 차단된 요청을 주고 받을 수 있게 해주는 것이 CORS이며,
이는 브라우저의 정책으로 서버간의 통신에는 적용되지 않는 특징이 있다.
CORS의 기본적인 동작 원리
브라우저가 다른 Origin으로 요청을 보낼 때 Origin헤더에 자신의 Origin을 설정하고,
서버로부터 응답을 받으면 Access-Control-Allow-Origin 헤더에 설정된 Origin 목록에
요청에 함께 설정한 Origin 헤더값이 포함돼있는지 검사하는 것으로 브라우저가
'검사하는 과정' 이다.
출처 : IT 엘도라도 블로그 - by피그브라더 : CORS
이해하기 아주 쉽게, 그리고 정확한 내용이 다음 블로그에 더 자세하게 서술돼있어
꼭 읽어보길 모두에게 추천드린다! 블로그의 글이 다 너무 좋아서 많이 참고하고 있는 곳이다.
해당 블로그를 참고하여 글을 작성하였다