CORS(Cross-Origin Resource Sharing)는 웹 페이지가 다른 도메인의 리소스에 접근할 수 있게 해주는 보안 메커니즘입니다. 기본적으로, 웹 브라우저는 같은 출처 정책(Same-Origin Policy)을 따릅니다. 이 정책은 웹 페이지가 다른 도메인(출처)의 리소스에 접근하는 것을 제한하는 보안 조치로, XSS(Cross-Site Scripting) 공격과 같은 웹 보안 취약점을 예방하는 데 도움이 됩니다. 그러나 이로 인해 합법적인 크로스-도메인 요청도 차단될 수 있습니다.
CORS 작동 방식
CORS는 웹 애플리케이션에서 다른 출처의 리소스를 안전하게 요청할 수 있도록 허용합니다. 이는 서버가 추가 HTTP 헤더를 사용하여 브라우저에게 해당 리소스에 대한 접근을 허용하는 출처와 조건을 알려줌으로써 이루어집니다.
예를 들어, [https://domain-a.com](https://domain-a.com)
의 웹 페이지가 AJAX를 사용하여 [https://api.domain-b.com](https://api.domain-b.com)
에 데이터를 요청하는 경우, `domain-b.com`의 서버는 다음과 같은 HTTP 헤더를 응답에 포함시켜 `domain-a.com`의 요청을 허용할 수 있습니다.
Access-Control-Allow-Origin: [https://domain-a.com](https://domain-a.com)
Preflight Request
CORS 정책에서는 특정 유형의 요청(특히, 사용자 데이터를 변경할 수 있는 요청 또는 특별한 헤더를 사용하는 요청)을 보내기 전에 "사전 요청"(Preflight Request)을 보낼 수 있습니다. 이는 서버에게 실제 요청을 보내기 전에 해당 요청이 안전한지 확인하는 과정입니다.
Preflight 요청은 OPTIONS 메서드를 사용하며, 실제 요청에서 사용될 HTTP 메서드와 헤더를 Access-Control-Request-Method
와 Access-Control-Request-Headers
헤더에 포함시켜 서버로 보냅니다. 이에 대한 응답으로 서버는 Access-Control-Allow-Methods
와 Access-Control-Allow-Headers
헤더를 통해 해당 요청의 허용 여부와 조건을 알려줍니다.
CORS의 중요성
CORS는 현대의 다양하고 복잡한 웹 애플리케이션에서 필수적입니다. API 서버와 프론트엔드가 다른 도메인에 배포되는 경우가 많기 때문에, 개발자는 CORS 정책을 이해하고 적절히 구성할 필요가 있습니다. 올바른 CORS 설정은 애플리케이션의 접근성과 보안성을 모두 증가시킬 수 있습니다.
'여러가지 > 이것저것' 카테고리의 다른 글
OSI7계층과 TCP/IP 4계층 모델 (0) | 2024.03.18 |
---|---|
OSI7계층과 TCP/IP 4계층 알아보기 (0) | 2024.03.18 |
RESTful이란 무엇인가? (0) | 2024.03.18 |
HTTP METHOD와 그 역할 (0) | 2024.03.18 |
GET과 POST의 차이점 (0) | 2024.03.18 |