CORS decision

CORS는 서버 차단이 아니라 브라우저의 응답 공유 판단이다

서버는 응답을 보낼 수 있지만, 브라우저는 CORS 헤더를 확인해 자바스크립트가 응답을 읽어도 되는지 결정한다.

요청브라우저가 Origin과 필요한 경우 preflight 정보를 보낸다.
서버 응답허용 Origin, 메서드, 헤더, 인증정보 정책을 헤더로 돌려준다.
브라우저 공개정책이 맞으면 JavaScript에 응답을 공개하고, 아니면 차단한다.
헤더판단 내용흔한 실수
Access-Control-Allow-Origin어떤 Origin에게 응답을 공개할지credentials와 함께 * 사용
Access-Control-Allow-Credentials쿠키/인증정보 포함 허용 여부SameSite, Secure 설정 누락
Vary: OriginOrigin별 캐시 분리CDN이 다른 Origin 응답을 재사용

구분: CORS 오류는 서버가 요청을 처리하지 않았다는 뜻이 아니라, 브라우저가 응답 공개를 거부했다는 뜻인 경우가 많다.