Network

[Network]CORS 쉽게 이해하기

MoonSta 2023. 1. 4. 00:02

2022.12.31 - [Network] - [Network] Domain과 DNS

 

[Network] Domain과 DNS

❓Domain이란? 인터넷과 연결된 모든 장치에는 각각 고유의 IP(Internet Protocol)을 가지고 있다. 로컬 PC를 의미하는 localhost의 IP는 127.0.0.1이 기본적인 IP주소의 예가 될 수 있다. 그렇다면 Domain은 무엇

mooonstar.tistory.com

CORS 쉽게 이해하기

 이전에 다루었던 Domain 관련 포스팅을 하면서, 필자의 블로그 도메인 주소(mooonstar.tistory.com)를 IP 주소로 변환시켜 접근을 해보았다. 하지만 접속할 수 없었다. 왜 접속이 되지 않는가에 대한 답을 찾기 위해 공부하던 도중 CORS와 관련이 있는 것 같아 포스팅하게 되었다. 

 

 

💥필자가 처음에 가졌던 의문에 대한 답은 아니었다. 추측하건대 내부적으로 IP 주소로의 접근을 차단한 것 같다.

 

 

CORS란?

 CORS는 Cross-Origin Resource Sharing의 축약어이다. 이 Cross-Origin Resource Sharing를 한국어로 직역하면 "교차 출처 리소스 공유"이다. 과거에는 html 코드 안에 스크립트에서는 보안상의 문제로 동일 출처에서만 리소스 공유를 허용하였지만, 웹 서비스가 커지고 Fetch API와 같은 외부에 접근하는 방법이 많아짐에 따라 그 통신을 안전하게 처리할 정책 CORS가 등장하였다. 추가 HTTP 헤더를 사용하여 다른 출처인 것을 판단하고 다른 출처의 리소스에 접근할 수 있는 권한을 부여할 수 있다. 즉, Cross-Origin 제한적으로 허용하는 정책이다.

2023.01.01 - [Javascript] - [Javascript] Fetch API

 

[Javascript] Fetch API

Fetch API 웹 개발을 하다 보면 클라이언트와 서버 간에 데이터를 주고받기 위해 HTTP 통신을 하게 됩니다. 오늘 포스팅은 Javascript의 비동기 통신을 위해 사용되는 Fetch API에 대해 알아보도록 하겠습

mooonstar.tistory.com

 

그렇다면 출처는 무엇인가?

출처:https://www.beusable.net/blog/?p=4507

 바로 URL이다. 그렇다면 모든 URL이 같아야지 동일 출처인가? 그건 아니다. CORS에서 말하는 동일 출처는 Protocol, Domin, Port이다. 위의 URL 구조도에는 Port 번호가 생략되었지만, Domain/Port(생략 가능)의 형식으로 Port 번호는 존재한다.

 

출처 비교 

URL A URL B 결과
http://moonstar.tistory.com:80 

http://moonstar.tistory.com:3000 포트변호 다름 - 다른 출처
http://moonstar.tistory.com:80 http://moonstar.tistory.com:80 모두 일치 - 같은 출처