브라우저가 다른출처 간의 통신규약에 관한 기술이다.
여러 애플리게이션을 통합하기 위한 메커니즘이라고 부른다.
브라우저는 기본적으로 이 SOP 에 관한 HTTP 규칙을 따른다.
SOP란 동일한 출처의 리소스 API만 허용한다는 규칙을 뜻한다.
하지만 오늘날의 시대에는 외부의 다양한API를 의존하기도 하며, 다른출처의 API를 마구마구 사용하며,
서로 상호작용을 하는 서비스들이 많이 존재하기에 이를 해결하기 위한 메커니즘이 CORS라고 보아도 무방하다.
CORS란 도메인이 다른 서버끼리 리소스를 주고 받을 때 보안을 위해 설정된 정책이라고 생각하면 된다.
벡앤드 개발자와 프론트 개발자가 서로 협업하면서도 CORS 정책을 위반하는 경우도 존재하는데 프론트의 경우 3000포트나, 9000포트를 띄울때 벡앤드 개발자는 8080포트를 주고 받으려한다면 서로 포트가 달라 위반하는 경우도 있다.
출처는 Https://google.com:443 과 같이 포트번호를 포함한 URL을 출처라고 한다.
그렇다면 출처가 같다고 판단하는 로직은 Schema Host, port 이 3가지가 같은지만 확인하면 된다.
BUt!
브라우저의 독자적인 출처 비교로직에 따라가기는 경우도 있다.
https://evan-moon.github.io 와 https://evan-moon.github.io:8000 의 경우
전자는 포트번호가 없어 출처가 같은지에 대한 구분이 명확하게 판단할수가 없다. ( 위의 예시는 443포트라는거를 대략 알기때문에 다른ㄴ출처라고 판단이 가능할수도 있음. 하지만 https 라고 다같은 443이 아닐수도있음!)