CORS(Cross-Origin Resource Sharing)는 웹 애플리케이션에서 다른 출처(도메인, 프로토콜, 포트)의 리소스를 요청하거나 공유하는 것을 관리하기 위한 웹 보안 메커니즘이다.
웹 보안을 위해 브라우저에서 도입된 정책으로, 동일 출처 정책(Same-Origin Policy)에 따라 다른 도메인의 리소스에 접근하는 것을 기본적으로 금지한다. 그러나 CORS를 통해 특정 도메인에서 다른 도메인의 리소스에 접근할 수 있는 권한을 부여할 수 있다. 이를 통해 웹 애플리케이션 간의 데이터 공유와 통신이 가능해진다.
보안 강화: 다른 도메인의 리소스에 무작위로 접근하는 것을 막아 웹 애플리케이션의 보안을 강화한다.
애플리케이션의 상호 운용성: 다른 도메인의 서비스를 활용하거나 제공하는 웹 애플리케이션 간의 상호 작용을 가능하게 한다.
요청의 출처 확인: 브라우저는 요청을 보낼 때 해당 요청이 어떤 출처에서 시작되었는지 확인한다.
사전 요청(Preflight Request): 브라우저는 실제 요청 전에 사전 요청을 보낸다. 이 사전 요청은 실제 요청의 메소드, 헤더 등을 미리 확인하기 위한 것이다.
응답 헤더 검사: 서버는 응답에 CORS 관련 헤더를 포함시키며, 이 헤더를 통해 브라우저는 엑세스를 허용할지 여부를 판단한다.
CORS의 헤더는 주로 다음과 같다.
서버는 이러한 헤더를 통해 브라우저에게 요청을 허용할지 여부를 알려주며, 브라우저는 이를 확인하여 요청의 허용 여부를 결정한다. CORS 정책은 보안과 상호 운용성을 균형있게 조절하기 위한 중요한 웹 보안 메커니즘이다.