System/네트워크
📌출처(Origin) 정의
완자✨
2022. 6. 16. 07:58
📌출처(Origin) 정의
서버의 위치를 의미하는 https://google.com과 같은 URL은 하나의 문자열 같지만 다음과 같이 구성되어 있다.
- 이때 출처는 protocal과 Host 그리고 Port까지 모두 합친 것을 의미한다.
동일 출처 비교 예시
아래 표는 URL http://example.com/dir/page.html의 출처를 비교한 예시입니다.
URL | 결과 | 이유 |
---|---|---|
http://example.com/dir2/other.html | 성공 | 경로만 다름 |
http://example.com/dir/inner/another.html | 성공 | 경로만 다름 |
https://example.com/secure.html | 실패 | 프로토콜 다름 |
http://example.com:81/dir/etc.html | 실패 | 포트 다름 (http://는 80이 기본값) |
http://news.company.com/dir/other.html | 실패 | 호스트 다름 |
- 두개의 출처를 비교하는 방법은 URL의 구성요소 중 Protocol, Host, Port 이 세가지가 동일한지 확인하면 된다.
- 즉 같은 프로토콜, 호스트, 포트를 사용한다면 다른 요소는 다르더라도 같은 출처로 인정된다. 반대로 리소스가 자신의 출처와 다를경우 브라우저는 교차출처 요청을 실행한다.
- 출처를 비교하는 로직은 서버에 구현된 스펙이 아닌 브라우저에 구현된 스펙이다.
- 만약 CORS정책을 위반하는 요청에 서버가 정상적으로 응답을 하더라도 브라우저가 이 응답을 분석해서 CORS정책에 위반되면 그 응답은 처리하지 않게 된다.
요악하면 프로토콜, 포트, 호스트중 하나라도 일치하지 않으면 Cross Origin 이라고 한다.
레퍼언스(Reference)
https://developer.mozilla.org/ko/docs/Web/Security/Same-origin_policy