CORS란?
- 교차 출처 리소스 공유(Cross-origin resource sharing)의 약자
- 현재 브라우저로 접속중인 페이지에서 자바스크립트를 이용해 다른 도멘인 또는 포트를 가진 주소로 요청을 하는 경우, 해당 리소스에 접근을 허용했는지 확인해 보안을 높이는 동작을 CORS라고 한다.
CORS 문제는 왜 발생할까?
- 브라우저는 주소(도메인, 포트 중 하나라도)가 다른 경우 리소스의 출처가 다르다고 판단한다
- 브라우저에서 출처가 다른다고 판단하면 어떻게 동작할까?
1. 브라우저가 요청하려고 시도했던 주소에 "OPTIONS"메서드를 이용해 요청을 의도적으로 허용하고 있는게 맞는지 확인한다 이것을CORS preflight라고 부른다
- 요청을 받은 서버는 평소와 똑같이 응답한다.
- 응답을 받은 브라우저는 요청에 대한 허가를 받지 못했다고 판단하고 CORS 에러를 발생시킨다
- 이것은 브라우저에 구현된 비동기 요청 API에서만 동작하는 규칙으로, Thunder Client 같은 API Client를 이용해 요청하는 경우에는 절대 발생하지 않는다