CORS Preflight
CORS Preflight
CORS Preflight
- 브라우저가 HTTP 요청을 보내기 전에, 먼저 보내는 요청
OPTIONS
메소드로 자신이 이후에 보낼 HTTP 요청에 대한 정보를 헤더에 담아서 보냄Access-Control-Request-Headers
: 본 요청에서 사용할 헤더 정보Access-Control-Request-Method
: 본 요청에서 사용할 메소드Origin
: 요청을 보내는 Origin
- 서버는 이에 대한 응답으로 다음과 같은 응답을 헤더에 담아 반환
Access-Control-Allow-Origin
: 허용하는 origin 정보Access-Control-Allow-Methods
: 허용하는 method들 정보
- 이 결과를 보고 브라우저가 CORS 정책 위반을 판단
- CORS 정책 위반인 요청은 보내지 않으므로, 리소스 낭비를 막을 수 있음
- 브라우저가 서버에 자동으로 보내주기 때문에, 프론트엔드 개발자가 요청을 직접 작성할 필요는 없음
- 특정 조건을 만족시키는
단순 요청
의 경우에는 생략됨 - Preflight 요청에 대한 결과는 일정 기간동안 캐싱됨
References
- https://developer.mozilla.org/ko/docs/Glossary/Preflight_request
- https://hwanchang.tistory.com/3
- https://evan-moon.github.io/2020/05/21/about-cors/