Access-Control-Request-HeadersAccess-Control-Request-Headers는 브라우저가 CORS 프리플라이트에 자동으로 실어, 이어질 실제 요청이 어떤 커스텀·비안전 요청 헤더를 보낼지 서버에 미리 알리는 요청 헤더입니다. 서버는 이를 보고 허용 여부를 Access-Control-Allow-Headers로 답합니다.
CORS-safelisted 요청 헤더(Accept·Accept-Language·Content-Language, 그리고 제한된 값의 Content-Type)만 쓰면 프리플라이트가 생기지 않습니다. 그 밖의 헤더(예: Authorization, X-Request-Id, application/json인 Content-Type)를 붙이면 요청이 non-simple이 되어 브라우저가 프리플라이트를 만들고, 실제로 보낼 헤더 이름들을 소문자로 정렬해 이 헤더에 담습니다.
서버는 프리플라이트 응답의 Access-Control-Allow-Headers에 요청된 헤더들(또는 *)을 나열해 승인합니다. 요청한 헤더 중 하나라도 허용 목록에 없으면 브라우저가 실제 요청을 차단합니다. 이 헤더 역시 브라우저가 관리하는 금지된 헤더 이름이라 스크립트로 조작할 수 없습니다.
값에는 헤더 이름만 담기며 헤더 값은 포함되지 않습니다. Authorization은 * 와일드카드로 자동 허용되지 않는 경우가 있어(자격 증명 맥락) 서버가 명시적으로 Access-Control-Allow-Headers에 나열해야 안전합니다.
Access-Control-Request-Headers: <header-name>[, <header-name>]*e.g. Access-Control-Request-Headers: Content-Type, X-Request-Id