CORS는 HTTP 헤더 기반 메커니즘으로, 브라우저가 리소스 로딩을 허용해야 하는 자체 출처 이외의 모든 외부 출처를 서버가 표시할 수 있도록 하는 것이다. 또한 서버가 실제 요청을 허용하는지 확인하기 위해 브라우저가 원본 리소스를 호스팅하는 서버에 실행 전에 요청을 하는 메커니즘에 의존한다.
보안상의 이유로 브라우저는 스크립트에서 시작된 cross-site HTTP 요청을 제한한다.
CORS 표준은 서버가 웹 브라우저에서 해당 정보를 읽을 수 있는 출처를 설명할 수 있는 새로운 HTTP헤더를 추가하여 작동한다. 서버 데이터에 부작용을 일으킬 수 있는 HTTP 요청 매서드의 경우 사양에서는 브라우저가 요청을 preflight 하여 서버에서 지원되는 매서드를 HTTP OPTIONS 요청 메서드를 사용하여 서버에서 승인시 실제 요청을 보낸다.
Simple Request
application/x-www-from-urlencoded, multipart/form-data, text

Preflight Request
: simple request와 달리 preflight의 경우 브라우저는 실제 요청이 안전한지 먼저 OPTIONS 매서드를 사용하여 다른 출처의 리소스에 HTTP 요청을 보낸다.
PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
Request에 클라이언트가 자동으로 설정한 헤더 외에 다른 헤더들이 추가되는 경우

Requests with Credential
⇒ 이 부분은 쿠키 챕터에서 자세하게 공부하기!!!