이론공부/네트워크통신
CORS란 무엇인가?
멍토
2020. 8. 2. 01:15
Django를 이용해서 REST API를 만드는데 프론트단에서 정보를 요청할때 CORS에러가 났던 적이있다.
CORS관련된 라이브러리를 사용하여 해결하였는데 CORS가 무엇인지 궁금하여 해당 포스팅을 작성하게 되었다.
CORS란 교차 출처 리소스 공유(Cross-origin resource sharing)의 약자로 서비스된 도메인 밖의 다른 다른 도메인으로부터 요청할 수 있게 허용하는 구조이다.
특정 도메인간(cross-domain) 요청, 특히 Ajax요청은 동일-출처 보안정책(same-origin policy)에 의해 기본적으로 금지된다고 한다.
보안 상의 이유로, 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한한다.
CORS는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다.
웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를때 교차 출처 HTTP요청을 실행한다.
대략적인 요약 (생각) : 자신의 도메인이 아닌 다른 도메인에서 요청을 하게되면 브라우저에서 보안상 차단을 하게됨.
그래서 backend에서 어떤 도메인을 승인할것인지 헤더에 표시하여 브라우저가 이것을 보고 승인할지 판단함.
좀더 자세한 내용은 아래에서 보실 수 있습니다.
https://developer.mozilla.org/ko/docs/Web/HTTP/CORS