CORS / Proxy

챔수·2023년 6월 7일
0

개발 공부

목록 보기
73/101

CORS

브라우저에서 API요청을 해야할 때 브라우저의 현재 주소와 API의 주소 도메인이 일치해야만 데이터를 접근할 수 있다(Same-Origin Policy, SOP). 만약 다른 도메인에서 API를 요청해 사용하게 해주려면 CORS설정이 필요하다.

  • CORS
    교차 출처 리소스 공유(Cross-Origin Resource Sharing)의 약자로 추가 HTTP헤더를 사용해 한 출처에서 실행중인 웹 애플리케이션이 다른 출처에서 선택한 자원에 접근할 수 있는 권한을 부여하는 체제이다.

  • 출처
    웹 콘텐츠의 출처는 접근할 때 사용하는 URL의 스킴(프로토콜), 호스트(도메인), 포트로 정의된다. 두 객체의 스킴, 호스트, 포트가 모두 일치하는 경우 '같은 출처를 가졌다' 고 한다.
    https://google.com:443 과 같은 URL주소가 있었을때 'https' 는 스킴, 'google.com'은 호스트 , ':443' 은 포트 이다.

Proxy

라이브러리, Webpack Dev Server에서 제공하는 proxy 기능을 사용하면 CORS 정책을 우회할 수 있다. 이는 별도의 응답 헤더를 받을 필요 없이 브라우저는 React 앱으로 데이터를 요청하고 해당 요청을 백엔드로 전달하게 된다. 여기서 React앱이 서버로부터 받은 응답 데이터를 브라우저로 전달하는 방법을 쓰기 때문에 브라우저는 CORS정책을 위반했는지 모르게 된다.
proxy를 사용한 요청의 흐름으로는 React앱에서 브라우저를 통해 API요청을 할 때 proxy를 통해 백엔드 서버로 요청을 우회하여 보내게 된다. 그 후 백엔드 서버는 응답을 React 앱으로 보내고 React 앱은 받은 응답을 백엔드 서버 대신 브라우저에게 전달한다. 이렇게 되면 출처가 같아지기 때문에 브라우저는 같은 출처에서 왔다고 허용하게 된다.

profile
프론트앤드 공부중인 챔수입니다.

0개의 댓글