사전 요청(preflight_request)

교차 출처 리소스 공유 사전요청(preflight_request)는 본격적인 교차 출처 HTTP 요청 전에 서버 측에서 그 요청의 메서드와 헤더에 대해 인식하고 있는지를 체크하는 것이다.

예를들어 클라이언트가 DELETE 요청을 하기 전에 사전 요청을 통해 서버가 DELETE를 허용하는지 물어보는 과정이다.

1
2
3
4
OPTIONS /resource/foo
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: origin, x-requested-with
Origin: https://foo.bar.org

만약 허용한다면 응답 헤더에 HTTPHeader(“Access-Control-Allow-Methods”)라고 나타난다.

1
2
3
4
5
HTTP/1.1 204 No Content
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400

이와같이 동일한 url을 사용하는 요청에 대해서는 Access-Control-Max-Age 헤더를 이용하여 정해진 기간에는 사전 요청에 대한 응답이 선택적으로 이루어질 수 있다.

댓글