CORS(Cross Origin Resource Sharing)

백승진·2020년 11월 12일
1

django로 Backend 개발을 하면서 cors와 관련된 문제가 발생해 이에 대한 조치를 진행하였다. 한편으로 cors가 도대체 뭐길래 문제가 발생하는건지 궁금해서 관련 내용을 검색하고 나름 정리한 내용을 posting 해본다.

CORS 가 뭐고 왜 문제를 유발하는가?

1. CORS 란

Domain 또는 Port가 다른 Server의 자원을 요청하는 메커니즘으로 서로 다른 Domain 또는 Port를 사용하는 client와 server가 통신을 통해 resource를 공유하는 매커니즘으로 이해했다.
우리 입장에선 너무나 당연하게 받아들이게 되는 내용이다.

2. 근데 왜 문제가 발생하는가?

HTTP요청은 기본적으로 Cross-Site HTTP Request가 가능하다. '<img>' 태그로 다른 Domain에 있는 image resource를 가져오거나, '<link>'태그로 다른 Domain의 CSS resource를 가져올 수 있다.
문제는 <script> tag 내에서 타 Domain의 resource를 request하는 경우 Cross-Site HTTP Request 는 'Same Origin Policy'라는 정책을 적용받게 되어 요청을 실패하게 된다. 이를 해결하기 위해 backend 측엔 cors 관련 완화기능을 반영해야 한다.

profile
12년 .NET 개발 경력을 가진 웹 초짜 개발자입니다 :)

0개의 댓글