Community

Simple Requests와 Preflighted Requests

네트워크 탭에서 API 요청 리스트를 보면 OPTIONS 메서드를 사용한 경우와 그렇지 않은 경우가 있습니다. 왜 이런 차이가 나는 걸까요? CORS 요청은 크게 "Simple Requests"와 "Preflighted Requests"로 나뉩니다. CORS 요청이 Preflighted Requests 일 때는 OPTIONS 메서드를 호출하고, Simple Requests 일 때는 OPTIONS 메서드를 호출하지 않습니다. 다음과 같은 조건이 충족되면 Simple Requests입니다. 1. HTTP 메서드: 요청 메서드는 GET, HEAD 또는 POST 중 하나여야 합니다. 2. HTTP 헤더: 요청 헤더는 Accept, Accept-Language, Content-Language, DPR, Downlink, Save-Data, Viewport-Width, Width, Content-Type (application/x-www-form-urlencoded, multipart/form-data, text/plain 중 하나인 경우만 허용됩니다) 등의 제한된 집합에 속해야 합니다. 3. Content-Type: 요청 본문의 Content-Type은 application/x-www-form-urlencoded, multipart/form-data, text/plain 중 하나여야 합니다. 실제 상황에서 Simple Reqeust의 조건을 만족시키기는 어렵습니다. Authorization을 사용한 인증 정보를 보내거나, 대부분의 API에서 사용되는 text/xml이나 application/json 컨텐츠 타입도 가지면 안 되니까요. 어쨋든 위의 Simple Request 케이스에 속하지 않은 보다 더 복잡한 상황일 때는 Preflighted Requests를 호출합니다. OPTIONS 메서드로 실제 요청을 보내기 전 "예비 요청"을 먼저 보내 서버의 허가를 받아 원래 요청을 안전하게 처리할 수 있는지 판단합니다. https://www.youtube.com/watch?v=-2TgkKYmJt4

알림

알림이 없습니다