CORS(Cross Origin Resource Sharing)
한 사이트에서 주소가 다른 서버로 요청을 보낼 때 발생할 수 있는 오류
웹사이트를 접속하게 되면 브라우저는 웹사이트의 HTML, CSS, JavaScript 코드를 가져와서 웹페이지를 구성한다.
하지만, 웹사이트를 구성하는 코드들이 악의적인 의도로 작성될 경우 개인 인증정보가 담겨있는 쿠키를 탈취하는등의 보안 문제가 발생할 수 있기 때문에
SOP(Same Origin Policy)라는 정책으로 동일한 URL에서의 데이터 접근만 가능하게 하였으나,
다양한 기능을 가진 API가 생김에 따라서 SOP을 적용하고싶지 않은 수요가 생겨나기 시작하였다.
기본적으로 SOP 정책으로 인해 다른 URL에서의 API접근을 허용하기 위해서는
CORS옵션으로 접근을 허용해 주어야 한다.
요청의 origin의 출처값이 서버의 답장 해더에 담긴 Access Control Allow Origin에 같은 값이 있으면 안전한 요청으로 판단하여 허용한다.CORS허용 방법에는 Simple Request인 경우와 Preflight일때가 있다.
SimpleRequest는 get과 post와 같이 일정 요청에 적용되며,
Crudential : true 옵션을 허용해주고, 보내는 쪽의 출처를 명확히 명시해 주는 방법으로 사용할 수 있다.
Preflight : DB등의 중요한 정보가 변경될 가능성이 큰 요청에 적용되며, 요청을 보내기 위해 먼저 값을 확인하는 절차를 보내고, 이러한 요청이 이상이 없다는 확인 이후에 API요청이 보내진다.
출처 : 얄팍한 코딩사전 - CORS