이론공부/네트워크통신

CORS란 무엇인가?

멍토 2020. 8. 2.

Django를 이용해서 REST API를 만드는데 프론트단에서 정보를 요청할때 CORS에러가 났던 적이있다.

CORS관련된 라이브러리를 사용하여 해결하였는데 CORS가 무엇인지 궁금하여 해당 포스팅을 작성하게 되었다.

 

CORS란 교차 출처 리소스 공유(Cross-origin resource sharing)의 약자로 서비스된 도메인 밖의 다른 다른 도메인으로부터 요청할 수 있게 허용하는 구조이다.

특정 도메인간(cross-domain) 요청, 특히 Ajax요청은 동일-출처 보안정책(same-origin policy)에 의해 기본적으로 금지된다고 한다.

보안 상의 이유로, 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한한다.

 

CORS는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다.

웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를때 교차 출처 HTTP요청을 실행한다.

 

대략적인 요약 (생각) : 자신의 도메인이 아닌 다른 도메인에서 요청을 하게되면 브라우저에서 보안상 차단을 하게됨.

그래서 backend에서 어떤 도메인을 승인할것인지 헤더에 표시하여 브라우저가 이것을 보고 승인할지 판단함.

 

 

 

좀더 자세한 내용은 아래에서 보실 수 있습니다.

 

출처 : https://ko.wikipedia.org/wiki/%EA%B5%90%EC%B0%A8_%EC%B6%9C%EC%B2%98_%EB%A6%AC%EC%86%8C%EC%8A%A4_%EA%B3%B5%EC%9C%A0

 

교차 출처 리소스 공유 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

https://developer.mozilla.org/ko/docs/Web/HTTP/CORS

 

교차 출처 리소스 공유 (CORS)

교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라

developer.mozilla.org

 

'이론공부 > 네트워크통신' 카테고리의 다른 글

TCP 3-way handwake란 무엇인가?  (0) 2020.08.06
쿠키/세션이란 무엇인가?  (1) 2020.08.03
CSRF란 무엇인가? 방어기법?  (0) 2020.07.31
GET, POST방식의 이해  (0) 2020.04.25
HTTP 상태코드  (0) 2020.04.20

댓글

💲 광고입니다.