CORS request header, response header

Posted by yunki kim on December 26, 2020

HTTP 응답 헤더

  아래에 서술된 헤더들은 서버가 접근 제어 요청을 위해 보내는 HTTP응답 헤더이다.

Access-Control-Allow-Origin: <origin> | *

  단일 출처를 지정해 브라우저가 해당 출처가 리소스에 접근되도록 허용한다. 자격 증명이 없으면 와일드카드('*')를 사용한다.

Access-Control-Expose-Headers: <header-name>[, <header-name]*

  브라우저가 접근할 수 있는 헤더를 서버의 화이트리스크에 추가한다

Access-Control-Max-Age: <delta-seconds>

  preflight request요청 결과를 캐시할 수 있는 시간을 나타낸다

Access-Control-Allow-Credentials: true

  credentails 플래그가 true일때 요청에 대한 응답을 표시할 수 있는지를 나타낸다. preflight request에 대한 응답의 일부로 사용할 경우 credentials를 사용해 실제 요청을 수행할 수 있는지를 나타낸다. simple GET requests는 preflighted되지 않으므로 credentials가 있는 리소스를 요청하면 이 헤더는 리소스와 함께 반환되지 않는다. 이 헤더가 없으면 브라우저에서 응답을 무시하고 웹 컨텐츠로 반환되지 않는다.

Access-Control-Allow-Methods: <method>[, <method>]*

  리소스에 접근할때 허용되는 메서드를 지정한다. 이 헤더는 preflight request에 대한 응답으로 사용된다.

Access-Control-Allow-Headers: <header-name>[, <header-name>]*

  preflight request에 대한 응답으로 Access-Control-Allow-Headers헤더가 사용된다. 실제 요청시 사용할 수 있는 HTTP헤더를 나타낸다.

 

HTTP 요청 헤더

Origin: <origin>

  Origin헤더는 cross-site 접근 요청 또는 preflight request의 출처를 나타낸다. origin 값은 null 또는 URI가 올 수 있다.

Access-Control-Request-Method: <method>

 실제 요청에서 어떤 HTTP메서드를 사용할지 서버에게 알려준다

Access-Control-Request-Headers: <field-name>[, <field-name>]*

   실제 요청에서 어떤 HTTP 헤더를 사용할지 서버에게 알려준다. preflight request할때 사용된다.