<aside> 👉 목차

</aside>

CORS & SOP

Origin, CORS, SOP와 CORS 시나리오에 대해 간단히 알아봅니다.

<aside> 👉 javascript 공부 레포에 같이 저장

javascript/README.md at main · dusunax/javascript

</aside>

Origin이란?

<aside> 👉 출처 origin

확인하는 곳

</aside>

CORS와 SOP가 왜 필요하나요?

Cross-Origin Resource Sharing

<aside> 👉 CORS는 "Cross-Origin Resource Sharing", 교차 출처 자원 공유의 약자입니다.

하나의 도메인에서 작성된 웹 페이지가 다른 도메인의 자원에 액세스할 수 있도록 허용하는 정책입니다. 웹 브라우저는 기본적으로 다른 도메인으로의 요청을 허용하지 않기 때문에 CORS가 필요합니다.

즉, CORS는 서버가 다른 도메인의 웹 페이지에서 자원에 액세스 할 수 있도록 허용하게금 합니다.

</aside>

SOP Same-Origin Policy

<aside> 👉 SOP는 "Same-Origin Policy" 동일 출처 정책의 약자입니다.

하나의 origin에서 작성된 웹 페이지가 다른 origin의 웹 페이지 또는 자원과 상호 작용하는 것을 방지하는 것입니다.

(자원 예시: 스크립트, 이미지, 스타일시트 등)

</aside>

같은 출처 예시

url Same Origin 설명
https://google.co.kr/maps O 호스트가 같음
http://google.co.kr X 포트가 다르므로 다른 origin입니다.
https://google.co.kr:443/maps?hl=en&authuser=0 O 포트번호가 의도적으로 명시되어 있습니다.(https)
https://api.google.co.kr X 호스트가 다름
https://google.co.kr:8080 Δ 대부분의 브라우저: 같은 출처 / IE: 다른 출처

<aside> 🤔 port에 대한 CORS 정책이 명확하지 않았기 때문에, 같은 호스트의 다른 프로토콜이 동일 출처이냐에 대해서 브라우저의 차이가 있었습니다.

(IE : 포트가 다르면 같은 출처로 인정하지 않음)

</aside>