3.3 CORS 헤더 다루기
더 많은 대중이 사용할 수 있는 API를 개발할 때는 CORS(cross-origin resource sharing)에 대해 생각해야 한다. MDN Web Docs의 CORS 항목(http://mng.bz/N5wD) 페이지를 참조하기 바란다. 웹 브라우저에는 도메인 A에서 시작된 요청을 도메인 B에서는 허용하지 않는 보안 메커니즘이 있다. 개발이나 실제 운용 환경에서 웹사이트를 서버에 배포하고 로컬에서 브라우저로, 또는 다른 도메인에서 요청을 보내려고 하면 실패한다.
이런 상황에 대응하기 위해 CORS가 발명되었다. 동일 출처 정책(same-origin policy, http://mng.bz/DDwE)에 대한 제약을 완화해서 브라우저가 다른 도메인에 요청을 할 수 있도록 한다. 이게 어떻게 가능할까? 예를 들자면 HTTP PUT 요청을 바로 보내는 대신 HTTP OPTIONS 요청인 실행 전(preflight) 요청을 서버로 보낸다. 그림 3-5는 실행 전 요청과 관련된 내용이다.