기술영역 : HTTP
질문 : CORS란 무엇이고 목적은 어떻게 되는지 설명, NodeJS기반의 웹 서버에서 CORS를 어떻게 설정하는지 설명
CORS란
CORS(Cross Origin Resource Sharing) : 교차 출처 리소스 공유는 추가 HTTP 헤더를 사용하여 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제, 웹 애플리케이션은 리소스가 자신의 출처(도메인, 포트, 프로토콜)와 다를 때 교차 출처 HTTP 요청을 실행함
CORS의 등장 배경
SOP(Same Origin Policy, 동일 출처 정책)의 등장에 따른 자원의 공유 혹은 응답이 제한되었으나 웹이라는 오픈스페이스 환경에서 다른 출처에 있는 리소스를 가져와서 사용하는 일은 굉장히 흔한 일이라 무작정 제한할 수 없어 몇가지의 예외조항을 두게 됨
같은 출처와 다른 출처 구분
두개의 출처가 같다고 판단하는 로직은 두 URL의 구성 요소 중 scheme(protocol), host, port가 같으면 되는데 이 세가지 중 하나라도 다르면 다른 출처로 판단하여 브라우저가 보안상의 이유로 동일한 출처의 리소스가 아니면 SOP(Same Origin Policy)정책에 따라 차단함
CORS 사용