- 개인 공부 목적으로 작성한 글입니다.
- 아래 출처를 참고하여 작성하였습니다.
목차
- CORS 란?
- 왜 CORS가 필요한가?
- '동일한 출처'란?
- 결론
1. CORS 란?
- CORS(교차 출처 리소스 공유)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처인 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 방식입니다.
- 웹 애플리케이션은 요청하고자 하는 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 CORS HTTP 요청을 실행합니다.
2. 왜 CORS가 필요한가 ?
- 보안상의 이유로, 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한합니다.
- 예를 들어, XMLHttpRequet와 Fetch API는 동일 출처 정책을 따릅니다.
- 동일 출처 정책은 잠재적으로 해로울 수 있는 문서를 분리함으로써 공격받을 수 있는 경로를 줄여줍니다.
3. '동일한 출처'란?
- 아래 세 가지 조건이 모두 같아야 동일한 출처라고 말합니다.
- 두 URL의 프로토콜
- 두 URL의 포트번호
- 두 URL의 host 주소
4. 결론
- 웹 애플리케이션은 기본적으로 자신의 출처와 동일한 리소스만 불러올 수 있으며, 다른 출처의 리소스를 불러오려면 그 출처(서버)에서 올바른 CORS 헤더를 포함한 응답값을 반환해줘야 합니다.
- 웹 애플리케이션의 요청이 다른 출처로 보내는 요청이라면, 요청을 받은 서버에서 HTTP Header에 Access-Control-Allow-Origin값을 Response에 포함해 돌려줍니다.
- 서버로부터 받은 Access-Control-Allow-Origin 값에 웹 애플리케이션의 출처가 들어있다면 이 요청은 유효한 요청입니다.
- 서버로부터 받은 Access-Control-Allow-Origin 값에 웹 애플리케이션의 출처가 없다면 이 요청은 제한됩니다.
출처
'VOCA > ComputerScience' 카테고리의 다른 글
API Gateway (0) | 2021.09.16 |
---|