[InterView] CORS Error

skdding3·2022년 11월 21일
0

Interview

목록 보기
1/3

면접을 보다가 CORS 에러에 대해 질문을 받았다.
내가 실제로 현업에서 빌드할때는 JAVA 빌드 환경에서 탬플릿 작업을 하다보니 CORS에 대한 규약에 대해 고민해본적이 없는데,
실제로 출처가 다른 곳에서 리소스 전달을 하면 브라우저 렌더 과정에서 문제가 생긴다고 한다.

  • CORS란 무엇일까?

CORS 규약은 서로 다른 출처간에 리소스를 전달 하는 방식으로, 서버에서 특정 헤더인 Access - Control - Allow - Origin 과 함께 응답한다.

  • 어느 상황에서 나는 에러일까?

서로 다른 출처를 가진 상세로 리소스를 받아오면, 브라우저가 보안상 이유로 차단한다. 클라이언트가 3000 포트 이고 서버포트가 8000 포트일때 에러가 난다.


해결법
  • 프록시 서버 구축
    CORS 자체는 브라우저 관련된 정책이므로, 서버간 통신으로 정책이 적용되지 않는 특성을 가진다. 서버에서 서버로 리소스 요청시 CORS 에러를 위반하지 않는다.
  • http-Proxy-middleware
    배포전 개발 단계에서 로컬포트가 다르기 때문에,
    ex) React -> 3000 , Java -> 8000
    로컬환경 한정으로 미들웨어를 세팅한다.
  • Access-Control-Allow-Origin 헤더 세팅
    허용하는 도메인을 사용한다.
profile
당신에게 가치있는 Developer가 되고자

0개의 댓글