본문 바로가기
🗂 Study/네트워크

CORS는 무엇일까?💻

by 뿌맘 2021. 7. 30.
반응형

✔️CORS란?

교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)

CORS는 W3C에서 서로 다른 Origin에서 자원(Resource)을 공유할 수 있도록 하기 위해 내놓은 정책을 말합니다.

즉, 서로 다른 도메인 주소 사이에서 데이터(API 요청과 응답)을 주고받을 수 있도록 하기 위한 정책입니다.

 

✔️CORS 사용 목적

브라우저는 보안상의 이유로 스크립트에서 시작한 교차 출처 HTTP 요청을 제한하는데 이러한 방식을 동일 출처 정책이라고 합니다.

동일 출처 방식을 적용하면 공격을 받을 수 있는 경로를 제한하거나 해로운 문서들을 분리할 수 있다는 장점이 있지만, 외부 API를 연동하는 경우 App과 외부 API의 Origin이 다르기 때문에 자원 공유가 불가능한 상황이 발생합니다.

CORS는 브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원하기 때문에 보안 문제를 예방하고 허용하는 Origin만 요청할 수 있습니다.

* 동일 출처 정책(Same-Origin Policy)
어떤 출처에서 불러온 문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 보안 방식

 

✔️CORS의 동작 과정

브라우저가 자원(Resource)를 요청할 때 추가적인 헤더에 정보를 담습니다.

이때, 내 Origin이 무엇이고 어떤 메서드를 사용하여 요청할 것인지, 어떤 헤더들을 포함할 것인지를 담아 서버에 전송합니다.

서버는 서버가 응답할 수 있는 Origin들을 헤더에 담아서 브라우저에게 보냅니다.

브라우저가 이 헤더를 보고 해당 Origin에서 요청할 수 있다면 자원 전송을 허용하고, 불가능하다면 에러를 발생시킵니다.

 

 

 


References

 

CORS란 무엇인가? – Yunseok's Dev Blog

 

hannut91.github.io

 

교차 출처 리소스 공유 (CORS) - HTTP | MDN

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

developer.mozilla.org

 

반응형

'🗂 Study > 네트워크' 카테고리의 다른 글

REST, RESTful이 무엇일까?🤔  (0) 2021.07.23
쿠키🍪 와 세션  (0) 2021.07.09
HTTP 메서드와 역할  (0) 2021.07.09
GET 방식과 POST 방식  (0) 2021.07.08
HTTP와 HTTPS의 차이점 + SSL Handshake  (0) 2021.06.30

댓글