Access-Control-Allow-OriginAccess-Control-Allow-Origin(ACAO)은 브라우저의 동일 출처 정책(SOP)을 넘어 어떤 오리진이 이 응답을 읽을 수 있는지를 지정하는 CORS 핵심 헤더입니다. 이 헤더가 없거나 요청 오리진과 맞지 않으면 브라우저는 응답 본문 접근을 차단합니다.
값은 특정 오리진(예: https://app.example.com) 또는 모든 오리진을 허용하는 와일드카드 *입니다.
*는 모든 오리진에서의 접근을 허용하지만 공개·비자격증명(non-credentialed) 리소스에만 안전합니다. 오리진별로 다르게 허용하려면 서버가 요청의 Origin 헤더를 검사해 허용 목록에 있으면 그 값을 그대로 반사(reflect)해 돌려줍니다. 이때 반드시 Vary: Origin을 함께 내야 캐시가 오리진별 응답을 섞지 않습니다.
자격 증명(쿠키·HTTP 인증·클라이언트 인증서)을 포함한 요청에서는 *를 쓸 수 없습니다. 브라우저는 Access-Control-Allow-Credentials: true와 함께 반드시 구체적인 단일 오리진을 요구합니다. 즉 credentials 모드에서 ACAO: *는 거부됩니다.
ACAO는 단순 요청의 실제 응답과 프리플라이트(OPTIONS) 응답 양쪽에 필요합니다. 프리플라이트에서는 Access-Control-Allow-Methods·Access-Control-Allow-Headers와 함께 검사됩니다.
Access-Control-Allow-Origin: <origin> | *e.g. Access-Control-Allow-Origin: https://app.example.com