2022.12.31 - [Network] - [Network] Domain과 DNS
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
그렇다면 출처는 무엇인가?
바로 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 | 모두 일치 - 같은 출처 |
'Network' 카테고리의 다른 글
[Network]정보가 기록되는 쿠키와 세션, 그리고 캐시 알아보기 (1) | 2023.06.28 |
---|---|
[Network] Domain과 DNS (10) | 2022.12.31 |