위코드 세션의 일부를 참고해 요약 정리한 내용입니다.
CORS는 Cross Origin Resource Sharing의 줄임말입니다. 즉, 도메인 주소가 다른 서버에 http request를 전송하는 걸 이야기 합니다. 예를 들어, naver.com 에서 api.google.com 으로 http request를 보내면 CORS가 되고 같은 host에서 포트만 달라도 CORS로 간주됩니다.
최신 웹 브라우저들이 보안상의 이유로 외부 Host로 접속하는 것을 차단하는 문제를 해결하기 위해 CORS표준이 제안되었고 요즈음엔 거의 일반화 되었습니다.
CORS 표준은 브라우저와 서버에 그들이 권한을 가진 원격 URL을 요청할 수 있는 방법을 제공하는 새로운 HTTP 헤더를 정의 해줍니다. 일부 유효성 검사 및 권한 부여는 서버에서 수행 할 수 있지만 일반적으로 이러한 헤더를 지원하고 부과하는 제한 사항을 준수하는 것은 브라우저의 책임입니다.
CORS 종류는 아래 4가지가 있습니다.
말 그대로 간단하기 때문에 막을 필요가 없는 요청입니다.
사전 요청을 보내서 요청을 보내도 되는지 허락을 받고 보내는 방법입니다.
장고에서는 django-cors-headers
를 설치해 사용하면 됩니다.