서로 다른 Origin 사이에 자원을 공유하는 방법이 교차 출처 리소스 공유 (CORS; Cross-Orgin Resource Sharing)이다. CORS는 외부 리소스의 엑세스 제한하는 보안 정책이다.

CORS는 클라이언트에서 서버로 요청을 하기 직전까지의 권한 확인 절차다.

Simple Request (간단 요청)

아래 조건을 만족하는 메서드들은 별도의 요청없이 호출이 가능하다

단, 간단요청이라 하더라도 서버의 응답에 Access-Control-Allow-Origin 헤더가 포함되어 있어야한다.

Preflight Request

위 Simple Request 조건을 만족하지 않는 경우 별도의 요청 권한 확인을 위해 Preflight 요청을 날려 확인하는 절차가 추가된다.

preflight 요청은 클라이언트가 OPTIONS 메서드에 아래 헤더를 추가하여 서버로 요청한다

CORS 리소스에서는 기본적으로 쿠키를 전달하지 않는다. 다만 credentials: include로 요청하고 서버가 허가한 경우에만 쿠키를 전송한다.

서버는 아래 내용을 추가하여 응답한다.