브라우저가 내는 에러니까 프론트에서 해결하라는 말을 들었다면?
(지적과 피드백 환영입니다.)
Cors에러는 브라우저에서 내는 에러이다.
(그렇기 때문에 “ 포스트맨에서는 안 났는데 왜 브라우저에서 이 에러가 발생하는 거죠????” 하는 질물을 하는 분도 심심치 않게 만나볼 수 있다.)
그리고 브라우저가 내는 에러라고 했을 때,
“그럼 브라우저가 내는 에러니까 프론트에서 해결하세요”라는 이야기를 들었다면? 근데 그 얘기를 들으니 그게 맞는지 헷갈린다면? 이 글을 보여주면 된다.
cors 에러를 간단하게 설명하자면,
클라이언트에서 서버로 요청을 보낼 때 외부의 해커가 그 요청에 서버에 치명적인 요청을 몰래 싣어서 보낼 수 있으므로
브라우저가 origin이 다른 곳으로 요청을 보내면 그 요청을 막기 때문에 발생하는 에러이다.
(브라우저는 같은 아이피, 도메인이어도 뒤에 포트번호만 달라져도 다른 origin이라고 판단한다.)
이 상황을 비유하면 이렇다.
당신은 김부잣집에 과외 선생님으로 출근하기로 했다.
첫 출근날, 김부잣집의 저택(서버) 앞에 선 당신을(클라이언트 요청)
김부잣집의 경비원(브라우저)이 막아서며 말한다.
“낯익은 얼굴이 아니군. 이 집 식구도 아니고, 이 곳에서 일하는 사람도 아닌데 어딜 들어가려고 하시요? 받아줄 수 없소!”
이것이 바로 Cors에러이다.
이 때 당신이 김부잣집에 들어가기 위해서는 어떻게 해야할까?
김부잣집 막내딸처럼 분장하기?
체격, 체력 모두 뛰어난 경비원님과 싸워서 이기고 들어가기?
아니다.
당신은 김부잣집의 사모님께(서버) 전화를 하여 자택에 출입할 수 있도록 조취를 취해달라고 말하면 된다(‘사모님 출입자 명단에 저 좀 추가해주세요.’).
그 말인 즉슨,
Cors에러는 서버에서 해결해야 한다는 말이다.
사모님이 ‘이러이러하게 생긴 이런 이름의 친구는 내가 보증하니 집으로 들이시오~’라고 말하는 것 처럼
서버에서 ‘이 아이피(도메인)를 가진 친구의 요청은 안전하니 받아주시오.’해줘야 한다.
결론: 코스 에러는 브라우저에서 내지만, 서버에서 해결해줘야 한다.