HTTP OPTIONS 메소드를 쓰는 이유를 알기 위해서는 CORS란 개념을 우선 숙지해야한다.

 

CORS란

웹 브라우저가 외부 도메인의 서버와 통신하기 위해 HTTP 헤더 기반 메커니즘을 사용한 것을 CORS라 한다.

그렇다면 왜 안전하게 1개의 도메인이 아닌 다른 도메인에서 데이터를 가져오는 것일까? 그것은 웹 기술의 발전에 따라 다른 서버로 요청을 보내거나 페이지내 자원을 분리해야할 필요성이 생겨나서 이를 다른 도메인에서 가져와 쓰는 것이다.

그렇기 때문에 어떠한 요청을 할것인지 미리 보내 승인을 받으면 데이터를 가져오는 것이다.

데이터를 가져오기 위해서 Access-Control-Allow-Origin 헤더 속성을 이용하여 접속 가능 여부를 확인한다.

이때 사용되는 요청이 Preflight Request이다.

 

 Preflight Request

권한 및 해당 도메인에 대한 안전을 확인하기 위한 사전요청이라 보면 편할 것이다. 클라이언트가 요청하는 URL이 외부 도메인일 경우 웹브라우저 자체적으로 실행되는데 OPTIONS 메서드로 사전 요청을 보내고 무슨 요청을 사용할 수 있는지 권한이 출력된다. 아래 사진은 요청에 대한 어떤 권한을 줄 수 있는지 나오게 된다. 보게 되면 GET, POST, PUT ,PATCH, DELETE, OPTIONS 가 가능하다는 것을 볼 수 있다.

 

아래는 위 요청을 통해 GET을 해당 도메인에 요청을 보낸 것이다.

간략하게 적었지만 결국 해당 도메인에서 다른 도메인의 데이터를 가져와 사용한다는 것이 주 핵심이고 Access-Control-Allow-Origin를 통해 데이터 송신을 한다는 것을 알면 된다.

GET URL에 데이터를 실어 다음 URL에 전달
POST 보이지않지만 URL 이동시 데이터를 가지고 보낸다 (안전)
PUT 리소스의 모든 데이터를 업데이트한다.
PATCH 리소의 일부 데이터를 업데이트한다.
DELETE 데이터를 삭제
OPTIONS
다른 도메인에 어떠한 요청을 할 수 있는지 확인 하는 것

 

+ Recent posts