CORS

CORS란 현재 Ip가 아닌 다른 Ip로 리소스를 요청하는 구조

1. Origin

Origin은 요청이 시작된 서버의 위치를 나타내는문구이다.

만약 내가 Naver 로그인 서버로 로그인 요청을 한다고 가정하면, 아마 과정을 그려보면 다음과 같을 것이다.

https://k.kakaocdn.net/dn/rFaeP/btqLblkoUUH/kZOPny0XdHFkkKKRb8fua0/img.png

여기서 서버 Ip는 2개가 존재한다.

  1. Client 서버
  2. 로그인 API 서버

이 2개의 IP는 서로 다른 IP의 번호를 갖고 있게 된다.

예를 들어 Client 서버는 http://client:80 이라고 하고 로그인 서버는 http://login:3000/이라고 해보자.

그럼 여기서 클라이언트 서버(http://client:80)가 로그인 서버(http://login:3000/)에게 HTTP 요청을 보낼 때 Origin 이 다르다라고 하는 것이다.

https://k.kakaocdn.net/dn/n7Hwo/btqK8klZ7Vl/4zzOApBCMOwuD0Qknr3Ykk/img.png

이를 Cross Origin이라고 하고, 만약 로그인 서버가 내부 통신을(그럴 일은 드물겠지만) 해서 서버 내 데이터를 가져온다면 그 것은 Same Origin이라고 한다.

https://k.kakaocdn.net/dn/LhNN9/btqK6BoYct7/OY7P4q83H3TnBPADZswC40/img.png

그럼 여기서 어떻게 Origin을 구분할까?

Origin을 구분하는 방법

Origin을 구분할 때는 3가지를 이용한다.

  1. 스키마