본문 바로가기
IT 개발/Network

CORS (HTTP 접근 제어) 이란

by Love of fate 2020. 2. 4.
728x90
반응형

CORS (HTTP 접근 제어) 이란

 

Cross-Origin Resource Sharing(CORS)은 추가 HTTP 헤더를 사용하여 브라우저에게 한 출처에서 실행중인 웹 응용 프로그램의 다른 출처의 선택된 자원에 대한 접근 권한을 알려주는 메커니즘이다. 

웹 응용 프로그램은 자신과 다른 출처(도메인, 프로토콜, 또는 포트)를 가진 리소스를 요청할 때 cross-origin HTTP요청을 실행한다. 

 

* 보안 상의 이유로, 브라우저들은 스크립트 내에서 초기화되는 cross-origin HTTP 요청을 제한한다. 

 

요약 : 크로스 도메인간에 데이터 요청을 보내면, 보안을 문제로 전송할 수 없는데 브라우저의 same-Origin Policy, 즉 같은 프로토콜, 같은 도메인, 같은 포트에서의 요청이 아니면 XMLHttpRequest 등으로 접근 할 수 없도록 되어있다.

이러한 경우를 위해 W3C에서 크로스 도메인간에 데이터 공유를 위ㅐ서 CORS를 만들었다.

 

ex)

cross-origin request의 예: https://domain-a.com에서 제공되는 프론트 엔드 JavaScript 코드가 XMLHttpRequest를 사용하여 https://domain-b.com/data.json를 요청.


CORS문제를 해결하기 위한 방법

1. CORS 대상 서버에서 Access-Control 헤더를 설정해주면 허용된다.

https://remysharp.com/2011/04/21/getting-cors-working/

 

2. json with padding 이란 방법 

 

3. 프록시 페이지를 만드는 방법 

요청하는 스크립트 페이지가 있는 서버에 프록시를 두어 프록시 페이지에서 다른서버에 있는 페이지를 읽어 온다. 

* php나 jsp 같은것에서는 다른 서버에 있는 데이터를 읽어오는데 제약이 없는 점을 이용한 것

 

 

728x90
반응형

'IT 개발 > Network' 카테고리의 다른 글

프로토콜(Protocol) 이란 / TCP/IP, HTTP, Web Socket  (0) 2020.02.05
인터넷이란  (0) 2020.02.05
Proxy란  (0) 2020.02.03