크로스 오리진(Cross-Origin)이란 한 웹페이지에서 다른 도메인(주소)의 리소스(데이터, 이미지, 스크립트 등)를 요청하는 것을 말한다. 예를 들어, 네이버 페이지에서 구글 서버의 데이터를 요청하는 경우를 생각하면 된다. 서로 다른 도메인 간의 요청이기 때문에 "크로스 오리진"이라고 부른다.
문제는, 보안상의 이유로 브라우저가 이런 크로스 오리진 요청을 기본적으로 막는다는 점이다. 해커가 악용할 수 있기 때문이다. 그래서 필요할 때만 허용하기 위해 나온 것이 바로 CORS이다.
CORS(Cross-Origin Resource Sharing)는 다른 도메인의 리소스를 요청할 때, 그 요청을 허용할지 말지 서버에서 결정하는 방법이다. 서버는 특정 헤더(HTTP 헤더)를 사용하여 어떤 도메인에서의 요청을 허용할지 브라우저에 알려준다.
예를 들어, 어떤 서버가 모든 도메인의 요청을 허용하려면 다음과 같은 헤더를 응답에 추가한다.
http
코드 복사
Access-Control-Allow-Origin: *
이렇게 하면 모든 도메인의 요청을 받을 수 있다. 특정 도메인만 허용하려면 * 대신 해당 도메인의 주소를 적는다.
요약하자면:
- 크로스 오리진: 한 도메인에서 다른 도메인의 리소스를 요청하는 것.
- CORS: 서버에서 크로스 오리진 요청을 허용할지 결정하는 방법.
이렇게 하면 웹 보안이 유지되면서도 필요한 경우 크로스 오리진 요청을 할 수 있다.