Request Method: OPTIONS 의미

Jiumn·2023년 6월 6일
0

개요

이전까지는 항상 GET, POST, DELETE 등과 같은 단일한 HTTP 요청만 보다가, 입사 후 처음으로 Request MethodOPTIONS라는 알 수 없는 메소드가 표시된 것을 발견했다.

네트워크 탭에서 요청된 API를 파악하는 과정에서 발견했는데, 특이한 점은 OPTIONS 요청과 실제 요청(단일한 요청) 2가지가 각각 발생한다는 점이었다.

그래서 이 OPTIONS는 실제 요청이 아니라고만 예상이 되었다.

그렇다면 Request Method: OPTIONS가 무엇인지 알아보자.

Request Method: OPTIONS

결론적으로 말하면 Request Method: OPTIONS는 주어진 URL 또는 서버에 대해 허용된 통신 옵션을 요청하는 것이다.

이러한 요청은 CORS 상황에서 발생한다. CORS(Cross-Origin-Resource-Sharing)은 교차 출처(프로토콜, 호스트, 포트)가 다를 때 리소스를 허용해주는 기능이다. CORS 설정이 되어 있을 때 브라우저는 서버에 접근 가능한 메소드를 확인하게 된다.

그 설정을 Request HeadersAccess-Control-Request-Method 옵션에서 확인할 수 있다.

즉, 브라우저에서 먼저 POST 요청이 가능한지 서버에 확인하는 것이다. 그럼 서버는 Response HeadersAccess-Control-Allow-Methods로 가능한 요청 메소드를 보내준다.

OPTIONS 요청을 처음 접하게 된 이유는 이전까지 프로젝트에서는 백엔드 서버 하나만 운영했기 때문에 CORS 요청을 설정한 적이 없었기 때문이다. 실무에서는 프론트엔드 측에도 서버가 있어 백엔드 서버와 각각 통신을 하게 되는데 이때 포트 번호가 달라서 SOP(Same-Origin-Policy, 동일 출처 정책)에 위배된다. 따라서 CORS를 설정해줘야 하고 브라우저는 단일한 요청을 보내기 전에 가능한 메소드가 어떤 것들이 있는지 사전 요청을 하는 것이다.

참고 자료

https://developer.mozilla.org/ko/docs/Web/HTTP/Methods/OPTIONS
https://eunjinii.tistory.com/43

profile
Back-End Wep Developer. 꾸준함이 능력이다. Node.js, React.js를 주로 다룹니다.

0개의 댓글